Program Ехашр1е_300;
Uses crt;
Var N:word;
К:array[1..100] of longint;
{K — зарезервований масив для зберігання кількості кісточок, що влучили в оленів}
і,Sum:longint; {і — змінна циклу, Sum — загальна кількість кісточок, що влучили в оленів}
Begin
Randomize;
{Ця процедура запускається з метою зробити числа генератора випадкових чисел ще більш «випадковими»}
Clrscr;
Sum:=0; {Спочатку Мюнхгаузен ще ні в кого не влучив}
Write(‘Олені, в яких влучив Мюнхгаузен (<=100): ‘);
Readln(N);
For і:=1 to N do
Begin
К[і]:=random(5 0)+2 0; {Заповнення масиву випадковими числами в діапазоні від 20 до 70}
Write(К[і]:5); {Виведення на екран для контролю}
Sum: =Sum+K [і] ; {Знаходження кількості влучених кісточок}
End;
Writeln; {Переведення курсору на новий рядок}
Writeln(‘Кількість нових саджанців ‘,Sum);
Readkey; {Затримка зображення на екрані}
End.
ЗАДАЧА № 309
Умова : Дано натуральне число А. Складіть програму, що представляє його у вигляді многочлена. Наприклад,
123 = 1 * 102 + 2* 101 + 3*10°.
Розв ‘язання . Ця задача фактично зводиться до пошуку окремих цифр числа. Оскільки ми не знаємо на початку роботи, скільки цифр має число, для їх зберігання можна використати масив цілих чисел, причому розмірність цього масиву можна задати не більше 10 елементів, тому що навіть найбільше ціле число типу longint має в своєму складі не більше 10 цифр. Щоб вивести на екран отриманий многочлен, ми спочатку знаходимо кількість цифр у числі та виділяємо кожну цифру окремо, а потім організовуємо цикл від «найстаршої» значущої (ненульової) цифри числа до «наймолодшої» з виведенням на екран самої цифри, помноженої на 10 у степені номер розряду - 1 (тобто i-1).
Програма, що реалізує описаний алгоритм, має вигляд:
Program Example_309;
Uses crt;
Var N,і,Count:longint; {N — задане ціле число, і — змінна циклу. Count — кількість цифр в числі}
Cifra:array[1. .10] of byte; {Cifra — масив для зберігання цифр числа}
Begin
Clrscr;
Count:=0;
Write(‘Введіть ціле число: ‘);
Readln(N);
While N>0 do
Begin
Count:=Count+l; Cifra[Count]:=N mod 10; N:=N div 10;
End;
Write(‘N = ‘);
For it«Count downto 1 do
Begin
Write(Cifra[i],’*10^’ ,i-l); {Якщо доданок не останній, то до нього дописується знак «+»}
If і>1 Then write(‘ + ‘);
End;
Readkey; {Затримка зображення на екрані}
End.
ЗАДАЧА № 312
Умова : Дано дійсні числа а 1951 , а 1952 ,..., а 2000 —кількість опадів (у мм), що випали у місті за останні 50 років століття. Обчислити середню кількість опадів за цей період і щорічне відхилення від середнього значення.
Розв’язання : У цій задачі слід організовувати проходження по масиву двічі, оскільки першим проходженням ми знайдемо тільки суму всіх опадів, що випали за останні 50 років, а потім, поділивши отриманий результат на 50, знайдемо середню кількість опадів за вказаний період. Другим же проходженням можемо вже визначити щорічне відхилення від середнього значення, причому для того, щоб не втратити вхідні дані, зарезервуємо в програмі ще один масив на 50 дійсних чисел для зберігання цих результатів.
Program Example_312;
Uses crt;
Var N,i:longint; {N — кількість елементів масиву, і — змінна циклу}
А:аггау[1951..2000] of real; {A - масив для зберігання кількості опадів у відповідному році}
В:array[1951..2000] of real; {В — масив для зберігання відхилення від середнього значення}
Begin
Randomize;
Clrscr;
Sum:=0;
For і:=1951 to 2000 do
Begin
A[i] :=random(500) /7 ; {Заповнення масиву випадковими дійсними числами}
Write (А[і] :8:2) ; {Виведення масиву на екран для контролю}
Sum:=Sum+K[і];
End;
Sum:=Sum/50; {Середня кількість опадів за рік}
Writeln; WriteIn(‘Щорічні відхилення від середньої кількості опадів за період 1951 - 2000 p.p.’);
For і:=1951 to 2000 do
Begin
В[і]:=Sum — А[і]; {Знаходження щорічного відхилення}
Write(В[і]:8:2); {Виведення результатів на екран}
End;
Readkey;
End.
ЗАДАЧА №318 (4)
Умова: Дано дійсні числа а 1 а 2 , ..., a 30 b 1 b 2 , ..., b 30 . Обчислити
Читать дальше