Дана последовательность из N натуральных чисел из текстового файла. Найти три максимальных значения этой последовательности. Вывести в текстовый файл. Например: Файл input.txt 4 6 7 3 5 1
У мові програмування Object Pascal є кілька команд, які можуть реалізувати цикл. Одна з них - команда циклу з лічильником. Її доцільно використовувати в тих випадках, коли кількість повторень команд тіла циклу відома ще до початку виконання команди циклу. Загальний вигляд цієї команди такий:
for <ім’я змінної> := <вираз1> to <вираз2> do begin <команди тіла циклу> end;
Рядок for <ім’я змінної> := <вираз1> to <вираз2> do (англ. for - для, to - до, do - робити, виконувати) називають рядком заголовка команди циклу з лічильником. Змінну в рядку заголовка команди циклу з лічильником, що стоїть перед знаком присвоювання, називають лічильником циклу. Лічильник циклу, виразі і вираз2 мають набувати тільки цілих значень. Якщо тіло циклу складається лише з однієї команди, операторні дужки begin і end можна не ставити.
Виконується команда циклу з лічильником так:
1) Надати лічильнику циклу і значення виразі.
2) Обчислити значення логічного виразу і J вираз2.
3) Якщо значення логічного виразу true, то виконати команди тіла циклу і перейти до виконання команди 4, якщо false - перейти до виконання команди, наступної за командою циклу.
4) Збільшити значення лічильника циклу на 1.
5) Перейти до виконання команди 2.
Для ілюстрації виконання команди циклу з лічильником розглянемо фрагмент проекту, в якому обчислюється сума 12 + 22 + 32 + 42.
var s, і: integer; begin s := 0;
for і := 1 to 4 do begin
s := s + i*i; end;
Labell.Caption := IntToStr (s); end;
Виконаємо цей фрагмент програми.
Команда Результат виконання
s := 0 s = 0
i := 1 i = 1
i <= 4 (1 <= 4) = true
s := s + i*i s = 0 + 1*1 = 1
i := i + 1 i = 2
i <= 4 (2 <= 4) = true
s := s + i*i s = 1 + 2*2 = 5
i := i + 1 i = 3
i <= 4 (3 <= 4) = true
s := s + i*i s = 5 + 3*3 = 14
i := i + 1 i = 4
i <= 4 (4 <= 4) = true
s := s + i*i s = 14 + 4*4 = 30
i := i + 1 i = 5
i <= 4 (5 <= 4) = false
Labell.Caption := IntToStr (s) Labell.Caption = 30
Звертаємо вашу увагу, що після закінчення виконання команди циклу з лічильником значення лічильника циклу (змінної і) на 1 більше, ніж значення вираз2, і це значення, за потреби, можна використовувати в наступних командах.
Існує різновид команди циклу з лічильником, у якому лічильник не збільшується на 1, а зменшується на 1:
For <ім’я змінної> := <вираз1> downto <вираз2> do begin
<команди тіла циклу> end; (англ. down to - униз до).
Цей цикл продовжує виконуватися, якщо значення лічильника циклу більше або дорівнює (не менше) значенню вираз2.
Загальний вигляд команди циклу з лічильником такий:
for <ім’я змінної> := <вираз1> to <вираз2> do begin
<команди тіла циклу> end;
Рядок for <ім’я змінної> := <вираз1> to <вираз2> do називають рядком заголовка команди циклу з лічильником. Змінну в рядку заголовка команди циклу з лічильником, що стоїть перед знаком присвоювання, називають лічильником циклу. Лічильник циклу, виразі і вираз2 мають набувати тільки цілих значень.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
a, b : array [1..n] of integer;
i, max, min, p, imax, imin : integer;
begin
randomize;
writeln('исходный массив a[]:');
for i := 1 to n do
begin
a[i] := random(50) - 25;
write(a[i]:8)
end;
writeln;
{формируем и выводим новый}
{сразу осуществляем поиск максимума и минимума}
max := -1000; min := 1000;
writeln('новый массив b[]:');
for i := 1 to n do
begin
b[i] := a[i] * a[i] * a[i];
write(b[i]:8);
if b[i] > max then
begin
imax := i;
max := b[i]
end;
if b[i] < min then
begin
imin := i;
min := b[i]
end
end;
writeln;
{считаем произведение и выводим результаты}
p := max * min;
writeln('максимальный элемент нового массива - b[', imax, '] = ', max);
writeln('минимальный элемент нового массива - b[', imin, '] = ', min);
writeln('их произведение = ', p);
readln
end.
У мові програмування Object Pascal є кілька команд, які можуть реалізувати цикл. Одна з них - команда циклу з лічильником. Її доцільно використовувати в тих випадках, коли кількість повторень команд тіла циклу відома ще до початку виконання команди циклу. Загальний вигляд цієї команди такий:
for <ім’я змінної> := <вираз1> to <вираз2> do begin <команди тіла циклу> end;
Рядок for <ім’я змінної> := <вираз1> to <вираз2> do (англ. for - для, to - до, do - робити, виконувати) називають рядком заголовка команди циклу з лічильником. Змінну в рядку заголовка команди циклу з лічильником, що стоїть перед знаком присвоювання, називають лічильником циклу. Лічильник циклу, виразі і вираз2 мають набувати тільки цілих значень. Якщо тіло циклу складається лише з однієї команди, операторні дужки begin і end можна не ставити.
Виконується команда циклу з лічильником так:
1) Надати лічильнику циклу і значення виразі.
2) Обчислити значення логічного виразу і J вираз2.
3) Якщо значення логічного виразу true, то виконати команди тіла циклу і перейти до виконання команди 4, якщо false - перейти до виконання команди, наступної за командою циклу.
4) Збільшити значення лічильника циклу на 1.
5) Перейти до виконання команди 2.
Для ілюстрації виконання команди циклу з лічильником розглянемо фрагмент проекту, в якому обчислюється сума 12 + 22 + 32 + 42.
var s, і: integer; begin s := 0;
for і := 1 to 4 do begin
s := s + i*i; end;
Labell.Caption := IntToStr (s); end;
Виконаємо цей фрагмент програми.
Команда Результат виконання
s := 0 s = 0
i := 1 i = 1
i <= 4 (1 <= 4) = true
s := s + i*i s = 0 + 1*1 = 1
i := i + 1 i = 2
i <= 4 (2 <= 4) = true
s := s + i*i s = 1 + 2*2 = 5
i := i + 1 i = 3
i <= 4 (3 <= 4) = true
s := s + i*i s = 5 + 3*3 = 14
i := i + 1 i = 4
i <= 4 (4 <= 4) = true
s := s + i*i s = 14 + 4*4 = 30
i := i + 1 i = 5
i <= 4 (5 <= 4) = false
Labell.Caption := IntToStr (s) Labell.Caption = 30
Звертаємо вашу увагу, що після закінчення виконання команди циклу з лічильником значення лічильника циклу (змінної і) на 1 більше, ніж значення вираз2, і це значення, за потреби, можна використовувати в наступних командах.
Існує різновид команди циклу з лічильником, у якому лічильник не збільшується на 1, а зменшується на 1:
For <ім’я змінної> := <вираз1> downto <вираз2> do begin
<команди тіла циклу> end; (англ. down to - униз до).
Цей цикл продовжує виконуватися, якщо значення лічильника циклу більше або дорівнює (не менше) значенню вираз2.
Загальний вигляд команди циклу з лічильником такий:
for <ім’я змінної> := <вираз1> to <вираз2> do begin
<команди тіла циклу> end;
Рядок for <ім’я змінної> := <вираз1> to <вираз2> do називають рядком заголовка команди циклу з лічильником. Змінну в рядку заголовка команди циклу з лічильником, що стоїть перед знаком присвоювання, називають лічильником циклу. Лічильник циклу, виразі і вираз2 мають набувати тільки цілих значень.