Да се напише програма, която позволява:
- да се въведе число N и след това отпечатва нечетните числа от 1 до N и сумата им.
- да се въведат от клавиатурата N числа и отпечатва сумата на тези от тях, които са нечетни.
- да се въведат N числа и отпечатва сумата на тези с нечетен номер по реда на въвеждането – тоест на първото, третото, петото и т.н. числа.
Нарочно задавам три уж подобни като условие, но всъщност доста различни задачи. Помислете как може да бъде решена всяка от тях и вижте кое е общото и различното между решенията.
1. Да се въведе число N и след това отпечатва нечетните числа от 1 до N и сумата им.
2. Да се въведат от клавиатурата N числа и отпечатва сумата на тези от тях, които са нечетни.
3. Да се въведат N числа и отпечатва сумата на тези с нечетен номер по реда на въвеждането – тоест на първото, третото, петото и т.н. числа.
Калояне, първото решение не пресмята и не отпечатва сумата на числата. Във второто – не позволяваш да се въведат числа, нито ги сумираш. В третото решение си пропуснал знака за различно.
Освен това няма нужда да проверяваш дали (i=1). (i mod 2 <> 0) ще включи и него.
Лора, в твоето решение няма нито събиране на числата, нито отпечатване на сумата.
1. Да се въведе число N и след това отпечатва нечетните числа от 1 до N и сумата им.
2. Да се въведат от клавиатурата N числа и отпечатва сумата на тези от тях, които са нечетни.
3. Да се въведат N числа и отпечатва сумата на тези с нечетен номер по реда на въвеждането – тоест на първото, третото, петото и т.н. числа.
ПП: Съжалявам, че бях объркал задачите, но не съм чел условията както трябва :)
Няма проблем. Сега вече съм съгласен с решенията, и трите. Браво!
Сметнах, че ще е добре да я реша по друг начин след като видях горните решения.
Ще добавя решенията на другите две условия по-късно.
Калояне, много се радвам, че се включваш с решение, при това толкова оригинално! Ще ми е интересно да видя и другите две.
По това решение – имаш малка грешка – не започва от 1, а от 3. Другото е, че програмата изглежда прекалено сложна. За да се опрости, гледаш кои са общите неща в двата if-а и ги изнасяш извън тях. Ето:
Може дори и още да се опрости, ако се използва div.
Включвам се с решенията на останалите 2 условия:
2.
3.
Калояне, верни са и двете. Ако мога да дам някакви препоръки за подобряване на програмите, то: кода на програмата ще е по-лесен за четене, ако използваш цикъл for вместо repeat/until – след като са поредни стойности с фиксирано начало и край, цикъла for е точно за това. Ако сложиш и говорящи имена на променливите, програмата сама ще обяснява за какво е и какво прави :-)