4 ο Εργαστήριο Προγραμματισμού Σελίδα 1/9 BALANCE. #include <stdio.h> int main() { int par = 0, ag = 0; char c;

Σχετικά έγγραφα
ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Μεθόδων Επίλυσης Προβλημάτων

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Υπολογισμός - Εντολές Επανάληψης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

Πανεπιστήμιο Πελοποννήσου. Σχολή Θετικών Επιστημών & Τεχνολογίας. Τμήμα Επιστήμης & Τεχνολογίας Υπολογιστών. Προγραμματισμός Ι Εργαστήριο

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

ΛΥΜΕΝΕΣ ΑΣΚΗΣΕΙΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ-ΓΛΩΣΣΑ C ΑΤΕΙ (ΝΑ ΕΚΤΕΛΕΣΤΟΥΝ ΤΑ ΠΑΡΑΚΑΤΩ ΜΕ ΧΡΗΣΗ ΤΟΥ LCC COMPILER)

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 8 η : Συναρτήσεις Χειµερινό Εξάµηνο 2011

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

Ενότητα 4: «Εισαγωγή στον Προγραμματισμό. Τα πρώτα προγράμματα σε γλώσσα C»

Ασκήσεις & παραδείγματα για επανάληψη

ΑΤΣΑΛΑΚΗ ΞΑΝΘΟΥΛΑ ΕΡΓΑΣΤΗΡΙΟ 2

Finite Field Problems: Solutions

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Προγραμματισμός Η/Υ (ΤΛ2007 )

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Αρχές Προγραμματισμού

Εισαγωγή στον Προγραμματισμό

C: Από τη Θεωρία στην Εφαρμογή

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ:

ΤΕΙ Θεσσαλίας, Τμήμα Μηχανικών Πληροφορικής ΤΕ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ ΕΡΓΑΣΤΗΡΙΟ 9. ΑΣΚΗΣΕΙΣ (με ενδεικτική λύση)

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 2008

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Φροντιστήριο: Τύποι, Πίνακες, Συναρτήσεις (Κεφάλαια 7-8-9, KNK-2ED)

Η γλώσσα προγραμματισμού C

ΕΡΓΑΣΤΗΡΙΟ 5 ΣΗΜΕΙΩΣΕΙΣ

Παραδείγματα. Γράψτε ένα πρόγραμμα που να τυπώνει τη μέση τιμή ενός συνόλου μη αρνητικών αριθμών

Υπολογισμός - Εντολές Ελέγχου

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση:

Επεξεργασία κειμένου και συμβολοσειρών σε C

Μεθόδων Επίλυσης Προβλημάτων

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/2006

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Γλώσσα Προγραμματισμού C

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

2 Composition. Invertible Mappings

Σημειώσεις για πρόοδο στο εργαστήριο

Η γλώσσα προγραμματισμού C

Δομημένος Προγραμματισμός (ΤΛ1006)

EE512: Error Control Coding

A[0] = 0; /* To μηδέν δεν έχει διαιρέτες */ for (i=1; i<n; i++) { S=0; for (d=1; d<=i; d++) if (i % d == 0) S += d; A[i] = S; }

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

12. Συναρτήσεις (Μέρος ΙI)

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

Προγραμματισμός Ι. Θεματική ενότητα 8: Δημιουργία προγραμμάτων

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ

Σημειώσεις όγδοης εβδομάδας

Δομημένος Προγραμματισμός (ΤΛ1006)

Homework 3 Solutions

Συναρτήσεις. Εισαγωγή

Μεθόδων Επίλυσης Προβλημάτων

SCHOOL OF MATHEMATICAL SCIENCES G11LMA Linear Mathematics Examination Solutions

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα

Ενότητα 5: «Εισαγωγή στον Προγραμματισμό. Απλές ασκήσεις με γλώσσα C»

Προσέξτε πως η παράσταση μπορεί να περιλαμβάνει όχι μόνο μία τιμή ή μια άλλη μεταβλητή αλλά μια ολόκληρη μαθηματική παράσταση, όπως η εξής:

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ

Εισαγωγή στον Προγραμματισμό

The challenges of non-stable predicates

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΠΑΝΤΉΣΕΙΣ ΣΤΟ ΠΡΩΤΟ ΣΥΝΟΛΟ ΑΣΚΗΣΕΩΝ

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Δομές Δεδομένων & Αλγόριθμοι

ΗΥ-100: Εισαγωγή στην Επιστήμη Υπολογιστών 3η σειρά ασκήσεων

Γλώσσα Προγραμματισμού C

Ταξινόµηση και Αναζήτηση

ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ 8/9/2008

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Σημειώσεις δεύτερης εβδομάδας

Tridiagonal matrices. Gérard MEURANT. October, 2008

Αʹ. Πίνακες. Άσκηση 1. Λύση. Άσκηση 2. Λύση. Ασκήσεις Εργαστηρίου Προγραμματισμού

Εισαγωγή στον Προγραμματισμό

Η γλώσσα προγραμματισμού C

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)

Ordinal Arithmetic: Addition, Multiplication, Exponentiation and Limit

Εργαστήριο 3 Εντολή for while, do while

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ax 2 + bx + c = 0, αλλίως θα αποκρίνεται ανάλογα.

Η γλώσσα προγραμματισμού C

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ. Προγραμματισμός Ι.

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-2

ΑΣΚΗΣΗ 4: ΟΜΕΣ ΒΑΣΙΚΩΝ ΒΡΟΧΩΝ

Transcript:

BALANCE int main() int par = 0, ag = 0; char c; while ((c = getchar() )!= EOF) if (c == '(') ag++; else if (c == ')') ag--; if (c == '') par++; else if (c == '') par--; if (ag < 0) printf("sfalma stis paren8eseis\n"); return; else if (par < 0) printf("sfalma stis agkules\n"); return; if (ag!= 0) printf("sfalma stis paren8eseis\n"); return; else if (par!= 0) printf("sfalma stis agkules\n"); return; Άσκηση 2: ΚΑΡΚΙΝΙΚΗ ΓΡΑΦΗ (odd number of chars) Παράδειγμα: 1wagaw1 int checksym(char *name, int L) int i; 4 ο Εργαστήριο Προγραμματισμού Σελίδα 1/9

if (L % 2 == 0) for (i = 1; i <= L/2; ++i) if (name[(l/2)-i]!= name[(l/2)+i]) return 1; int main() int par = 0, ag = 0; char c; char name[100]; scanf("%s",name); if (checksym(name, strlen(name)) == 1) printf("%s",name); Γράψτε ένα πρόγραμμα που θα διαβάζει ένα τετραγωνικό πίνακα ακεραίων διάστασης Ν x Ν που θα έχετε κάνει define και θα υπολογίζει τα αθροίσματα και γινόμενα των γραμμών και των στηλών του. Τέλος θα εκτυπώνει ποια γραμμή και ποια στήλη εμφανίζει το μεγαλύτερο άθροισμα αντίστοιχα. #define N 3 int getsumrow(int A[N][N],int row) int j; int sum = 0; sum += A[row][j]; return sum; int getprodrow(int A[N][N],int row) int j; int prod = 1; prod *= A[row][j]; return prod; 4 ο Εργαστήριο Προγραμματισμού Σελίδα 2/9

int getsumcol(int A[N][N],int col) int j; int sum = 0; sum += A[j][col]; return sum; int getprodcol(int A[N][N],int col) int j; int prod = 1; prod *= A[j][col]; return prod; int main() int i,j; char c; int A[N][N]; int max = 0,temp; scanf("%d",&a[i][j]); temp = getsumrow(a, i); if (temp > max) max = getsumrow(a, i); printf("sum-row[%d] = %d\n",i,getsumrow(a, i)); printf("max = %d\n",max); max = 0; temp = getprodrow(a, i); if (temp > max) max = getprodrow(a, i); printf("prod-row[%d] = %d\n",i,getprodrow(a, i)); printf("max = %d\n",max); max = 0; 4 ο Εργαστήριο Προγραμματισμού Σελίδα 3/9

temp = getsumcol(a, i); if (temp > max) max = getsumcol(a, i); printf("sum-col[%d] = %d\n",i,getsumcol(a, i)); printf("max = %d\n",max); max = 0; temp = getprodcol(a, i); if (temp > max) max = getprodcol(a, i); printf("prod-col[%d] = %d\n",i,getprodcol(a, i)); printf("max = %d\n ",max); Άσκηση 1β Αν οι p και q είναι και οι δύο πρώτοι και q = p + 2, τότε οι p,q ονομάζονται δίδυμοι πρώτοι, π.χ. το 3 και το 5. Επεκτείνετε το προηγούμενο πρόγραμμα ώστε να τυπώνει όλους τους δίδυμους πρώτους μέχρι LIMIT. #include <string.h> #define LIMIT 1000 int main(void) int j,k; int PreviousPrime=2; // For every integer k from 2 to LIMIT we check // whether there is an integer j that divides it. // j runs from 2 to k. When the first divisor j of k has been found, // we check whether j==k. If this is the case, then k is a prime. // We need to store the last prime found to be able to check // for twin primes. for (k=2; k < LIMIT; ++k) j=2; while (k%j!= 0) j++; // If the smallest divisor of k is itself, then k is a prime if (j == k) // We check whether we have found a pair of // twin primes if (PreviousPrime+2 == j) 4 ο Εργαστήριο Προγραμματισμού Σελίδα 4/9

printf("found twin primes %d and %d\n", PreviousPrime, j); PreviousPrime = j; Γράψτε ένα πρόγραμμα που να επιλέγει τυχαία έναν αριθμό από το 1 ως το 100 και να ζητάει από το χρήστη να τον μαντέψει. Αν ο χρήστης μαντέψει τον αριθμό το πρόγραμμα σταματάει, ειδάλλως ανακοινώνει αν ο αριθμός είναι μικρότερος ή μεγαλύτερος από αυτόν που έχει διαλέξει το πρόγραμμα στην αρχή. #include <stdlib.h> #include <time.h> #define FROM 1 #define TO 100 int IntervalRand(int from, int to) int res; // Obtain a random interval with rand, then linearly scale // it to the interval [from, to] // rand returns an integer in [0, RAND_MAX] // to scale it to [from, to] we use the equation // (rand - 0)/(RAND_MAX -0) * (to-from) + from res = (((float)rand() * (to-from))/rand_max) + from; return res; int main() int seed, number, guess; seed = time(null); srand(seed); number = IntervalRand(FROM, TO); printf("my number is %d.\n\n", number); printf("i selected a random integer between %d and %d.\n", FROM, TO); do printf("enter a number and try to guess it:"); scanf("%d", &guess); if (number == guess) printf("you found it! It's %d\n", number); break; if (number < guess) printf("no! My number is smaller than that.\n"); else 4 ο Εργαστήριο Προγραμματισμού Σελίδα 5/9

printf("no! My number is larger than that.\n"); while (1); 4 ο Εργαστήριο Προγραμματισμού Σελίδα 6/9

Example: Write your own program that asks user to input sequence of numbers, afterwards it calculates arithmetic middle of the given sequence. Program also prints numbers smaller than arithmetic middle, and afterwards prints numbers bigger than arithmetic middle. #define DIMENSION 10 int main(void) int i; float sum = 0, arit_midd = 0, sequence[dimension]=0; printf("input number: "); scanf("%f",&sequence[i]); sum += sequence[i]; arit_midd = sum / DIMENSION; printf("arithmetic middle of the sequence is %6.2f.\n", arit_midd); if (sequence[i] < arit_midd) printf("%6.2f is smaller than arithmetic middle.\n", sequence[i]); if (sequence[i] > arit_midd) printf("%6.2f is bigger than arithmetic middle.\n", sequence[i]); Example: Write your own program that asks for input of sequence of numbers. After the program reads given numbers, it divides every number with the biggest sequence element and shows them in a way relative to the biggest element. #define DIMENSION 10 int main(void) int i; float max, array[dimension]; printf("array[%d] = ", i); scanf("%f",& array[i]); if (i == 0) max = array[i]; if (max < array[i]) max = array[i]; printf("biggest element in array is %f.\n\n", max); array[i] /= max; printf("array[%d] = %f\n", i, array[i]); Example: Compose your own program that reads given natural numbers that belong in [10, 99] interval and counts how many times each number showed up. Program stops reading numbers when 4 ο Εργαστήριο Προγραμματισμού Σελίδα 7/9

element that doesn t belong to interval is given. Afterwards, program prints each number from the interval that has showed at least once, and number of times it has really been given. #define LL 10 /* lower limit of the interval */ #define UL 99 /* upper limit of the interval */ int main(void) int number, i; int counter[ul LL + 1] = 0 ; do printf("\ninput number from interval [%d, %d]: ", LL, UL); scanf("%d", &number); if (number >= LL && number <= UL) counter[number - LL]++; while (number >= LL && number <= UL); for (i = DG; i <= UL; i++) if (counter[i - LL] > 0) printf("\nnumber %d showed up %d times", i, counter [i LL]); Example : Write your own C program that transposes matrix. Program stores given matrix dimensions and every single matrix element must be given. Transposed matrix is the one with rows and columns switched. #define MAX_ROW 50 #define MAX_COL 50 int main(void) int i, j, m, n, temp; int mat[max_row][max_col]; int dim = (MAX_ROW < MAX_COL)? MAX_ROW : MAX_COL; do printf("input number of rows < %d :", dim); scanf("%d", &m); printf("input number of columns < %d:", dim); scanf("%d", &n); while (m < 1 m > dim n < 1 n > dim); printf("\ninput of matrix elements :\n"); for (i = 0; i < m; i++) for (j = 0; j < n; j++) printf("input element [%d][%d] : ", i, j); scanf("%d", &mat[i][j]); printf("\n\nmatrix before transposing:\n"); for (i = 0; i < m; i++) for (j = 0; j < n; j++) printf("%3d", mat[i][j]); printf("\n"); 4 ο Εργαστήριο Προγραμματισμού Σελίδα 8/9

for ( i=0; i<m; ++i ) for ( j=i+1; j<n; ++j ) temp = mat[i][j]; mat[i][j] = mat[j][i]; mat[j][i] = temp; printf("\nmatrix after transposing:\n"); for (i = 0; i < n; i++) for (j = 0; j < m; j++) printf("%3d", mat[i][j]); printf("\n"); Multiplication 1 void mm_mul (int A[N][N], int B[N][N], int C[N][N]) 2 3 int i, j, k; 4 int sum; 5 6 for (i = 0; i < N; i++) 7 for (j = 0; j < N; j++) 8 sum = 0; 9 for (k = 0; k < N; k++) 10 sum += A[i][k] * B[k][j]; 11 12 C[i][j] = sum; 13 14 15 4 ο Εργαστήριο Προγραμματισμού Σελίδα 9/9