70 Εργαστηριακές ασκήσεις Προγραμματισμού ΗΥ 113 Εργαστηριακές ασκήσεις Άσκηση 113β Να φτιαχτεί ένα πρόγραμμα (program113bm) στο οποίο: Θα ζητούνται από το πληκτρολόγιο, και θα αποθηκεύονται στα πρώτα 3 πεδία μιας δομής, το όνομα, το βάρος και το ύψος ενός σπουδαστή Θα υπολογίζεται, και θα αποθηκεύεται σε ένα επόμενο (4ο) πεδίο της παραπάνω δομής, ο Δείκτης Σωματικού Βάρους (BMI) του σπουδαστή, όπου BMI = βάρος/ύψος 2 με το βάρος σε kg και το ύψος σε m Στη συνέχεια θα εκτυπώνεται στην οθόνη κατάλληλο μήνυμα με το όνομα του σπουδαστή και το δείκτη σωματικού του βάρους Θα ζητούνται από το πληκτρολόγιο, και θα αποθηκεύονται σε ένα επόμενο (5ο) πεδίο της δομής, οι 5 βαθμοί του σπουδαστή Προφανώς, το πεδίο αυτό θα είναι πίνακας Ο μέσος όρος των βαθμών θα αποθηκεύεται σε ένα επόμενο (6ο) πεδίο της δομής Στη συνέχεια θα εκτυπώνεται στην οθόνη κατάλληλο μήνυμα με το όνομα του σπουδαστή και το μέσο όρο των βαθμών του Προαιρετικά:Ο υπολογισμός του BMI καθώς και του μέσου όρου των βαθμών να γίνεται με τη βοήθεια κατάλληλων συναρτήσεων που θα κατασκευάσετε Άσκηση 113γ Να τροποποιηθεί κατάλληλα το πρόγραμμα program113bm (program113cm), ώστε να τα στοιχεία που αναφέρονται να αποθηκεύονται σε πίνακα δομών για 100 σπουδαστές Προαιρετικά:Ο υπολογισμός του BMI καθώς και του μέσου όρου των βαθμών να γίνεται με τη βοήθεια κατάλληλων συναρτήσεων που θα κατασκευάσετε
128 Εργαστηριακές ασκήσεις Προγραμματισμού ΗΥ Άσκηση 113β Να φτιαχτεί ένα πρόγραμμα (program113bm) στο οποίο: Θα ζητούνται από το πληκτρολόγιο, και θα αποθηκεύονται στα πρώτα 3 πεδία μιας δομής, το όνομα, το βάρος και το ύψος ενός σπουδαστή Θα υπολογίζεται, και θα αποθηκεύεται σε ένα επόμενο (4ο) πεδίο της παραπάνω δομής, ο Δείκτης Σωματικού Βάρους (BMI) του σπουδαστή, όπου BMI = βάρος/ύψος 2 με το βάρος σε kg και το ύψος σε m Στη συνέχεια θα εκτυπώνεται στην οθόνη κατάλληλο μήνυμα με το όνομα του σπουδαστή και το δείκτη σωματικού του βάρους Θα ζητούνται από το πληκτρολόγιο, και θα αποθηκεύονται σε ένα επόμενο (5ο) πεδίο της δομής, οι 5 βαθμοί του σπουδαστή Προφανώς, το πεδίο αυτό θα είναι πίνακας Ο μέσος όρος των βαθμών θα αποθηκεύεται σε ένα επόμενο (6ο) πεδίο της δομής Στη συνέχεια θα εκτυπώνεται στην οθόνη κατάλληλο μήνυμα με το όνομα του σπουδαστή και το μέσο όρο των βαθμών του program113bm sn = input('name? ','s'); sw = input('weight (kg)? '); sh = input('height (m)? '); sbmi = sw/sh^2; fprintf('bmi of student %s is %1f\n', sn, sbmi); BMI of student John is 261 Grade 1? 6 Grade 2? 7 Grade 3? 55 Grade 4? 8 John's average: 67 >> n = 5; % number of grades c = 0; % set counter to zero for i=1:n message = sprintf('grade %d? ',i); sgrade(i) = input(message); c = c + sgrade(i); smo= c/n; fprintf('%s''s average: %1f\n\n', sn, smo);
Λύσεις εργαστηριακών ασκήσεων 129 Προαιρετικά (program113b_1m):ο υπολογισμός του BMI καθώς και του μέσου όρου των βαθμών να γίνεται με τη βοήθεια κατάλληλων συναρτήσεων που θα κατασκευάσετε program113b_1m sn = input('name? ','s'); sw = input('weight (kg)? '); sh = input('height (m)? '); sbmi = bmi_calculation(sw, sh); fprintf('bmi of student %s is %1f\n', sn, sbmi); n = 5; % number of grades for i=1:n message = sprintf('grade %d? ',i); sgrade(i) = input(message); BMI of student John is 261 Grade 1? 6 Grade 2? 7 Grade 3? 55 Grade 4? 8 John's average: 67 >> smo = mo_calculation(sgrade); fprintf('%s''s average: %1f\n\n', sn, smo); bmi_calculationm function bmi = bmi_calculation(w,h) bmi = w/h^2; mo_calculationm function mo = mo_calculation(grade) c = 0; for i=1:length(grade) c = c + grade(i); mo = c/length(grade);
130 Εργαστηριακές ασκήσεις Προγραμματισμού ΗΥ Άσκηση 113γ Να τροποποιηθεί κατάλληλα το πρόγραμμα program113bm (program113cm), ώστε να τα στοιχεία που αναφέρονται να αποθηκεύονται σε πίνακα δομών για 100 σπουδαστές program113cm clc clear all close all ns = 100; % number of students ng = 5; % number of grades for i=1:ns fprintf('student %d:\n',i); s(i)n = input('name? ','s'); s(i)w = input('weight (kg)? '); s(i)h = input('height (m)? '); s(i)bmi = s(i)w / s(i)h^2; fprintf('bmi of %s is %1f\n', s(i)n, s(i)bmi); c = 0; % set counter to zero for j=1:ng message = sprintf('grade %d? ',j); s(i)grade(j) = input(message); c = c + s(i)grade(j); s(i)mo= c/ng; fprintf('%s''s average: %1f\n\n',s(i)n,s(i)mo); Student 1: BMI of John is 261 Grade 1? 5 Grade 2? 6 Grade 3? 4 Grade 4? 7 Grade 5? 85 John's average: 61 Student 2: Name? Anna Weight (kg)? 70 Height (m)? 168 BMI of Anna is 248 Grade 1? 7 Grade 2? 8 Grade 3? 6 Grade 4? 9 Anna's average: is 74
Λύσεις εργαστηριακών ασκήσεων 131 Προαιρετικά (program113c_1m):ο υπολογισμός του BMI καθώς και του μέσου όρου των βαθμών να γίνεται με τη βοήθεια κατάλληλων συναρτήσεων που θα κατασκευάσετε program113c_1m ns = 2; % number of students ng = 3; % number of grades for i=1:ns fprintf('student %d:\n',i); s(i)n = input('name? ','s'); s(i)w = input('weight (kg)? '); s(i)h = input('height (m)? '); s(i)bmi = bmi_calculation(s(i)w, s(i)h); fprintf('bmi of %s is %1f\n', s(i)n,s(i)bmi); for j=1:ng message = sprintf('grade %d? ',j); s(i)grade(j) = input(message); s(i)mo = mo_calculation(s(i)grade); fprintf('%s''s average: %1f\n\n',s(i)n,s(i)mo); Student 1: BMI of John is 261 Grade 1? 5 Grade 2? 6 Grade 3? 4 Grade 4? 7 Grade 5? 85 John's average: 61 Student 2: Name? Anna Weight (kg)? 70 Height (m)? 168 BMI of Anna is 248 Grade 1? 7 Grade 2? 8 Grade 3? 6 Grade 4? 9 Anna's average: is 74 bmi_calculationm function bmi = bmi_calculation(w,h) bmi = w/h^2; mo_calculationm function mo = mo_calculation(grade) c = 0; for i=1:length(grade) c = c + grade(i); mo = c/length(grade); Σημείωση: Οι συναρτήσεις είναι οι ίδιες με του program113b_1m (Άσκηση 113β)