Προγραμματισμός II (Γλώσσα C)

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

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

Προγραμματισμός ΙI (Θ)

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

Ασκηή σεις 12ο Μαά θημα - Λυύ σεις

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΑΣΚΗΣΗ #5 Προτεινόμενη Λύση

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

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

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

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

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

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

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

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; }

Προγραμματισμός II (Γλώσσα C)

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

Εκτέλεση της εντολής1 και στη συνέχεια εκτέλεση της ΕΝΟΤΗΤΑΣ και της εντολής2 όσο η ΣΥΝΘΗΚΗ είναι αληθής.

EΒ ΟΜΑ Α 3 Η. Άλλοι τελεστές καταχώρησης: += -= *= /= %= x += 5; σηµαίνει x = x + 5; k *= 7; σηµαίνει k = k * 7; sum %= 15; σηµαίνει sum = sum % 15;

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

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα

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

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

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

Δομημένος Προγραμματισμός

ΔΗΜΟΣΙΑ Ι.Ε.Κ. ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (ΓΛΩΣΣΑ C) ΑΠΑΝΤΗΣΕΙΣ ΣΤΙΣ ΕΡΩΤΗΣΕΙΣ ΠΙΣΤΟΠΟΙΗΣΗΣ

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

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών. ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Δομές

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

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

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ασκήσεις Επανάληψης

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες ( ιάλεξη 18) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδηµαϊκό έτος ΑΣΚΗΣΗ #5 Προτεινόµενη λύση

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

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

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

Τύποι Δεδομένων Είσοδος/Έξοδος

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 4: Έλεγχος Ροής. Κ.

Νικόλαος Μιχαλοδημητράκης Σημειώσεις C (Εργαστήριο) 12 ο Μάθημα 1

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2

Γ7.8 Εγγραφές (Structures) Γ Λυκείου Κατεύθυνσης

Προγραμματισμός Ι (ΗΥ120)

α. Οι συμβολοσειρές είναι μια ακολουθία από χαρακτήρες. Μια συμβολοσειρά μπορεί να αποτελείται από περισσότερες από μία λέξεις.

Προγραμματισμός I (E)

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

Ερωτήσεις και απαντήσεις στα θέματα του κανονισμού κατάρτισης

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

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

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

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

ΑΡ Χ Ε Ι Α Κ Ε Ι Μ Ε Ν Ο Υ (text files)

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

Ερωτήσεις και απαντήσεις στα θέματα του κανονισμού κατάρτισης

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

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Εισαγωγή στον δομημένο προγραμματισμό

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16)

Πρόλογος Εισαγωγικά Στοιχεία... 13

ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ. p: i: 3 p: i: 5

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Ι (ΗΥ120)

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

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

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

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα

Η γλώσσα προγραμματισμού C Δομές (structures) στη C

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ (ΔΙΑΔΙΚΑΣΙΕΣ ΣΥΝΑΡΤΗΣΕΙΣ)

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 10 Ο. Δομές Ενώσεις Απαριθμητοί τύποι δεδομένων ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

scanf() scanf() stdin scanf() printf() int float double %lf float

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

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

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

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

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

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

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

ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct)

Προγραμματισμός Υπολογιστών με C++

5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while)

Transcript:

Προγραμματισμός II (Γλώσσα C) Λύσεις 12 ης Ομάδας Ασκήσεων (Δομές) 1. Να γραφεί πρόγραμμα σε C το οποίο θα δημιουργεί μία δομή με το όνομα person. Η δομή αυτή θα αποτελείται από ένα όνομα (συμβολοσειρά μήκους 50) και ένα έτος γέννησης (ακέραιος). Κατά την έναρξή του, το πρόγραμμα θα ζητάει από τον χρήστη να εισάγει το όνομά του, το έτος γέννησής του και το τρέχον έτος. Κατόπιν, θα αποθηκεύει τα στοιχεία του χρήστη στην παραπάνω δομή και θα εκτυπώνει στην οθόνη το όνομα και την ηλικία του. struct person char name[50]; int year; struct person p1; int thisyear; printf("dose onoma: "); scanf("%s", &p1.name); printf("dose etos gennisis: "); scanf("%d", &p1.year); printf("dose trexon etos: "); scanf("%d", &thisyear); printf("geia sou %s. Eisai %d eton.", p1.name, thisyearp1.year); 2. Να γράψετε πρόγραμμα σε C που να διαβάζει το επώνυμο και το βαθμό 10 μαθητών και να τα αποθηκεύει σε ένα πίνακα του οποίου κάθε στοιχείο θα είναι μια κατάλληλη δομή (structure). Στη συνέχεια για κάθε μαθητή θα τυπώνει στην οθόνη το επώνυμό του, το βαθμό του, καθώς και το χαρακτηρισμό επίδοσης ανάλογα με το βαθμό του. Ο χαρακτηρισμός επίδοσης είναι: 0< βαθμός <= 9 αποτυχών

9< βαθμός <=12 μέτρια 12< βαθμός <=15 καλά 15< βαθμός <=18 πολύ καλά 18< βαθμός <=20 άριστα Στο τέλος να τυπωθεί το πλήθος των μαθητών κάθε κατηγορίας επίδοσης, δηλαδή άριστα 7 μαθητές,..., κτλ. #define N 10 struct mathitis char onoma[50]; float bathmos; struct mathitis m[n]; int i, apotyxontes=0, metrioi=0, kaloi=0, polykaloi=0, aristoi=0 ; for(i=0; i<n; i++) printf("dose onoma mathiti %d: ", i+1); scanf("%s", &m[i].onoma); printf("dose bathmo mathiti %d: ", i+1); scanf("%f", &m[i].bathmos); if(m[i].bathmos<=9) apotyxontes++; if(m[i].bathmos>9 && m[i].bathmos<=12) metrioi++; if(m[i].bathmos>12 && m[i].bathmos<=15) kaloi++; if(m[i].bathmos>15 && m[i].bathmos<=18) polykaloi++; if(m[i].bathmos>18 && m[i].bathmos<=20) aristoi++; for(i=0; i<n; i++) printf("\n%s = %4.2f", m[i].onoma, m[i].bathmos ); printf("\n"); printf("\naristoi : %d", aristoi); printf("\npoly kaloi : %d", polykaloi); printf("\nkaloi : %d", kaloi); printf("\nmetrioi : %d", metrioi); printf("\napotyxontes: %d", apotyxontes);

3. Έστω το τμήμα ενός σχολείου με μέγιστη δυναμικότητα τους 25 μαθητές. Σας ζητείτε να γράψετε ένα πρόγραμμα σε C το οποίο θα διαβάζει τα ονόματα των μαθητών του τμήματος μαζί με τους βαθμούς τους για ένα μάθημα στα προφορικά και τα γραπτά αντίστοιχα. Τα στοιχεία που θα διαβάζονται (όνομα, βαθμός προφορικών, βαθμός γραπτών) θα πρέπει να αποθηκεύονται σε κατάλληλη δομή (structure). Επειδή οι μαθητές ενδέχεται να είναι λιγότεροι από 25, η εισαγωγή θα πρέπει να σταματάει αν δοθεί ως όνομα μαθητή το 0 ενώ θα πρέπει να γίνεται και έλεγχος εγκυρότητας για το αν ο κάθε βαθμός που εισάγεται είναι στο διάστημα από 0 έως 20. Μετά την εισαγωγή των στοιχείων, το πρόγραμμα θα τυπώνει στην οθόνη τα ονόματα όλων των μαθητών μαζί με την τελική τους βαθμολογία η οποία θα προκύπτει από το 40% του προφορικού βαθμού και το 60% του γραπτού βαθμού, καθώς και ο μέσος όρος της τελικής βαθμολογίας όλου του τμήματος. #include <string.h> #define N 25 struct mathitis char onoma[50]; float proforika, grapta; struct mathitis m[n]; int i=0, plithos=0; float mo, sum; i+1); printf("dose onoma mathiti %d: ", i+1); scanf("%s", &m[i].onoma[i]); if(strcmp(m[i].onoma,"0")!=0) printf("dose proforiko bathmo mathiti %d (0-20): ", scanf("%f", &m[i].proforika); if(m[i].proforika<0 m[i].proforika>20) printf("lathos! Dose ksana proforiko bathmo mathiti %d: ", i+1); while(m[i].proforika<0 m[i].proforika>20); printf("dose grapto bathmo mathiti %d (0-20): ", i+1); scanf("%f", &m[i].grapta); if(m[i].grapta<0 m[i].grapta>20) printf("lathos! Dose ksana grapto bathmo mathiti %d: ", i+1); while(m[i].grapta<0 m[i].grapta>20);

i++; else printf("\ntelos kataxorisis\n!"); while(strcmp(m[i].onoma,"0")!=0 && i<n); plithos=i; for(i=0; i<plithos; i++) printf("\nmathitis: %s - Telikos bathmos: %4.2f\n", m[i].onoma, 0.4*m[i].proforika+0.6*m[i].grapta); sum=0; for(i=0; i<plithos; i++) sum=sum+(0.4*m[i].proforika+0.6*m[i].grapta); printf("\nmesos Oros tmimatos: %4.2f\n", (float)sum/(float)n); 4. Να δημιουργηθεί σε C δομή (structure) με το όνομα Book η οποία θα έχει τα εξής χαρακτηριστικά: isbn -> ακέραιος αριθμός title -> συμβολοσειρά μήκους 50 author -> συμβολοσειρά μήκους 50 subject -> συμβολοσειρά μήκους 100 Κατά την εκκίνηση του προγράμματος, ο χρήστης θα εισάγει τον μοναδικό αριθμό, τον τίτλο, τον συγγραφέα, το θέμα και τα στοιχεία θα καταχωρούνται στην παραπάνω δομή. Μετά την καταχώρηση, η δομή θα αποστέλλεται ως παράμετρος σε μία συνάρτηση με όνομα printbook και η οποία θα εκτυπώνει τα στοιχεία του βιβλίου στην οθόνη. #include <string.h> struct Book int isbn; char title[50]; char author[50]; char subject[100]; ; printbook(struct Book b) printf("\n"); printf( "Book id : %d\n", b.isbn);

printf( "Book title : %s\n", b.title); printf( "Book author : %s\n", b.author); printf( "Book subject : %s\n", b.subject); int main( ) struct Book book1; printf("dose ISBN: "); scanf("%d", &book1.isbn); printf("dose titlo: "); scanf("%s", &book1.title); printf("dose syggrafea: "); scanf("%s", &book1.author); printf("dose thema: "); scanf("%s", &book1.subject); printbook(book1);