ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ
§ 5. Структурированный тип данных: массив
Коротко о главном:
Массивом называют обозначаемую одним именем последовательность однотипных элементов.
Под индексом элемента массива понимают место каждого элемента в массиве (последовательности однотипных элементов, обозначаемой одним именем).
Массивы в языке Pascal описываются так:
Имя: array [инд1..инд2] of тип_элементов (пример: А: array [1..20] of integer).
Упражнение 1
1) заполните пропуски в описании массива из 80 элементов, содержащего целые числа. Числа пронумерованы от 1 до 80:
Ответ:
Var a: array [1..80] of integer;
Упражнение 2
Опишите массив из 50 действительных чисел:
Ответ:
Var a: array [1..50] of real.
§ 6. Ввод и вывод элементов массива
Коротко о главном:
Значения элементов, которые не изменяются при работе программы можно задавать в разделе описаний, например: Const A: array [1..8] of integer =(2, 4, 6, 7, 9, 5, 6, 0);
Можно использовать знак присвоения, например А[3]:=8;
Для ввода значений элементов массива с клавиатуры используют стандартные процедуры read и readln: например: for i:=1 to 5 do read(А[i]);.
Для вывода значений элементов массив используют стандартные процедуры write и writeln: например: for i:=1 to 5 do writeln(А[i]);.
Для формирования значений случайных чисел используют стандартную функцию random, например: Х[i]:=random (генерация случайных вещественных чисел на промежутке [0,1)
Упражнение 1
Заполните пропуски в программе ввода и вывода 10 целочисленных элементов массива, заданных случайным образом на промежутке [20;40]:
Ответ:
Var A: array [1..10] of integer;
i: integer;
Begin
for i:=1 to 10 do
begin
A[i]:=random(21) +20;
Write(A[i]);
end;
End.
Упражнение 2
Составьте программу для ввода с клавиатуры в массив 7 целых чисел и вывода этих чисел в обратном порядке.
Ответ:
Var A: array[1..7] of integer;
i: integer;
Begin
for i:=1 to 7 do
read (A[i]); {ввод значений через пробел}
for i:=7 downto 1 do
Write (A[i],' '); { вывод значений в строку}
End.
Результат работы программы может выглядеть так:
5 -6 1 0 4 -2 3
3 -2 4 0 1 -6 5
Упражнение 3
Составьте программу для ввода и вывода температуры за неделю.
Ответ:
Var A: array[1..7] of integer;
i: integer;
Begin
for i:=1 to 7 do
read (A[i]); {ввод значений через пробел}
for i:=1 to 7 do
Writeln (i,' сентября температура была ', A[i]); { вывод значений в столбец}
End.
Результат работы программы может выглядеть так:
17 15 16 19 20 18 17
1 сентября температура была 17
2 сентября температура была 15
3 сентября температура была 16
4 сентября температура была 19
5 сентября температура была 20
6 сентября температура была 18
7 сентября температура была 17
Упражнение 4
Составьте программу, которая формирует массив из двенадцати случайных целых чисел, принадлежащих промежутку [-5;5), и выводит эти числа в столбец.
Ответ:
Var A: array[1..12] of integer;
i: integer;
Begin
for i:=1 to 12 do
A[i]:=random(11)-5; {формирование массива случайных чисел на принадлежащих
промежутку [-5;5]}
for i:=1 to 12 do
Writeln (‘A[’ , I ,’]=’ , A[i]); { вывод значений в столбец}
End.
Результат работы программы может выглядеть так:
A[1]=3
A[2]=-1
A[3]=-1
A[4]=-3
A[5]=-1
A[6]=4
A[7]=3
A[8]=-1
A[9]=-2
A[10]=-2
A[11]=4
A[12]=-4
Упражнение 6
Составьте программу, которая формирует массив из десяти случайных вещественных чисел, принадлежащих промежутку [4;5), и выводит эти числа с 3 по 7 в столбец с двумя десятичными цифрами.
Ответ:
Var A: array[1..10] of real;
i: integer;
Begin
for i:=1 to 10 do
A[i]:=random+4; {формирование массива случайных чисел, принадлежащих
промежутку [4;5]}
for i:=3 to 7 do
Writeln ( A[i]:4:2); { вывод значений в столбец с 3 по 7 элемент}
End.
Результат работы программы может выглядеть так:
4.97
4.54
4.42
4.07
4.34
§ 7. Арифметические действия над элементами массива
Коротко о главном:
Для элементов массива целых чисел допустимы операции +, -, *, div, mod.
Для элементов массива вещественных чисел допустимы операции +, -, *, /.
Упражнение 1
Составьте программу, которая вычисляет среднюю плотность раствора (в кг/м3) по результатам измерения плотности 7 проб (задаются в массиве констант: 1205, 1350, 1170, 1320, 1220, 1310, 1180.
Const A: array[1..7] of integer = (1205, 1350, 1170, 1320, 1220, 1310, 1180);
Var i: integer;
p: real;
Begin
p:=0;
for i:=1 to 7 do
p:=p+A[i]; {вычисление суммы элементов массива}
p:=p/7; {вычисление средней плотности раствора}
write ('средняя плотность раствора ', p:8:2)
End.
Результат работы программы может выглядеть так:
средняя плотность раствора 1250.71
Упражнение 2
Составьте программу, которая осуществляет ввод в массив с клавиатуры размеров 6 файлов в байтах (от 100 до 2000) и вычисляет:
А) суммарный размер файлов в килобайтах;
Б) средний размер файла.
Ответ:
Var A: array[1..6] of integer;
s,i: integer;
Begin
s:=0;
writeln ('Введите размеры файлов через пробел, размер каждого от 100 до 2000 байт');
for i:=1 to 6 do
begin
read ( A[i]);
s:=s+A[i];
end;
writeln ('суммарный размер файлов ', s/1024:5:0, ' килобайт');
{форматный вывод результата}
writeln ('средний размер файла ', s/6:5:0,' байт');
{форматный вывод результата}
End.
Результат работы программы может выглядеть так:
Введите размеры файлов через пробел, размер каждого от 100 до 2000 байт
200 560 1024 2000 1560 780
суммарный размер файлов 6 килобайт
средний размер файла 1021 байт
Упражнение 3
Составьте программу, которая формирует массив из 40 случайных целых чисел от 0 до 20 и вычисляет:
А) среднее арифметическое нечётных чисел;
Б) сумму чисел, не превышающих 10;
В) сумму чисел, кратных трём.
На экран выводятся исходные значения и результаты вычислений.
Ответ:
Var A: array[1..40] of integer;
sa,s3,s10,k,i: integer;
Begin
sa:=0;
s10:=0;
s3:=0;
k:=0;
writeln ('исходные значения:');
for i:=1 to 40 do
begin
A[i]:=random(21);
{формирование массива случайных чисел, принадлежащих промежутку [0;20)}
write (A[i], ' '); {вывод элементов массива на экран}
end;
writeln ; {перевод курсора на новую строку}
for i:=1 to 40 do
begin
if A[i] mod 2 0 then {проверка чётности элемента массива}
begin
sa:=sa+A[i]; {вычисление суммы чётных элементов}
k:=k+1; {вычисление количества чётных элементов}
end;
if A[i] вычисление суммы элементов , меньших 10}
if A[i] mod 3 = 0 then s3:=s3+A[i]; {вычисление суммы элементов, кратных 3}
end;
writeln ('среднее арифметическое нечетных чисел ', sa/k:5:0);
writeln ('сума чисел, не превышающих десять ', s10);
writeln ('сума чисел, кратных трём ', s3);
End.
Результат работы программы может выглядеть так:
2 2 20 7 11 4 7 12 7 17 19 14 8 19 13 13 6 16 12 6 11 4 8 5 16 5 4 9 9 17 20 1 12 15 13 18 9 9 5 7
среднее арифметическое нечетных чисел 10
сума чисел, не превышающих десять 124
сума чисел, кратных трём 117
§ 8. Преобразование элементов массива
Коротко о главном:
При работе с массивами можно выполнять следующие преобразования элементов: изменять значения элементов в зависимости от выполнения некоторых условий, менять местами элементы в массиве.
При обмене местами элементов массива используют дополнительную перемену (буфер) с целью временного хранения заменяемого элемента.
Упражнение 1
Составьте программу, которая осуществляет преобразование единиц измерения физических величин:
А) значения скорости, измеренные в км/ч, преобразуются в значения, измеренные в м/с (1м/с = 3,6 км/ч);
Ответ:
Var A: array[1..6] of integer;
i: integer;
Begin
writeln ('Введите значения скорости, измеренные в км/ч, через пробел');
for i:=1 to 6 do
read (A[i]);
writeln ('скорость в м/с');
for i:=1 to 6 do
begin
A[i]:=round(A[i]/3.6); {преобразование км/ч в м/с}
write (A[i],' '); {вывод результата}
end;
End.
Результат работы программы может выглядеть так:
Введите значения скорости, измеренные в км/ч, через пробел
60 90 100 70 120 80
скорость в м/с
17 25 28 19 33 22
Б) значения мощности, измеренные в лошадиных силах, преобразуются в значения, измеренные в киловаттах (1 л.с.= 0,735 кВт);
Ответ:
Var A: array[1..6] of integer;
i: integer;
Begin
writeln ('Введите значения мощности, измеренные в лошадиных силах, через пробел');
for i:=1 to 6 do
read (A[i]);
writeln ('мощность в киловатах:');
for i:=1 to 6 do
begin
A[i]:=round(A[i]*0.735); {преобразование мощности в кВт}
write (A[i],' '); {вывод результата}
end;
End.
Результат работы программы может выглядеть так:
Введите значения мощности, измеренные в лошадиных силах, через пробел
122 61 103 259 163 204
мощность в киловатах:
90 45 76 190 120 150
В) значения давления, измеренные в миллиметрах ртутного столба, преобразуются в значения, измеренные в килопаскалях (1 мм.рт. ст. = 0,133 кПа).
Ответ:
Var A: array[1..6] of integer;
i: integer;
Begin
writeln ('Введите значения давления, измеренные в миллиметрах ртутного столба, через пробел');
for i:=1 to 6 do
read (A[i]);
writeln ('давление в килопаскалях:');
for i:=1 to 6 do
begin
A[i]:=round(A[i]*0.133); {преобразование мм.рт.ст. в кПа}
write (A[i],' '); {вывод результата}
end;
End.
Результат работы программы может выглядеть так:
Введите значения давления, измеренные в миллиметрах ртутного столба, через пробел
5752 6128 5639 6015 5865 6053
давление в килопаскалях:
765 815 750 800 780 805
Упражнение 2
Составьте программу, которая осуществляет ввод в массив с клавиатуры размеров 5 файлов в байтах (от100 до 9000 байт) и преобразует значения, превышающие 1024 байт, в килобайты. Результат выводится в строку.
Ответ:
Var A: array[1..5] of integer;
i: integer;
Begin
writeln ('Введите размеры файлов через пробел, размер каждого от 100 до 9000 байт');
for i:=1 to 5 do
begin
read ( A[i]);
if A[i]=1024 then A[i]:=round(A[i]/1024);
{преобразование элементов массива}
end;
for i:=1 to 5 do
if A[i]=100 then write (A[i],'байт ')
else write (A[i],'Кбайт ');{вывод результата}
End.
Результат работы программы может выглядеть так:
Введите размеры файлов через пробел, размер каждого от 100 до 9000 байт
100 2500 730 8500 3600
100байт 2Кбайт 730байт 8Кбайт 4Кбайт
Упражнение 3
Составьте программу, которая формирует массив из пятнадцати случайных чисел от -20 до 20 и:
А) чётные числа делит на два, а нечётные – умножает на три;
На экран выводятся исходные и преобразованные значения.
А) Ответ:
Var A: array[1..15] of integer;
i: integer;
Begin
writeln ('исходные значения:');
for i:=1 to 15 do
begin
A[i]:=random(41)-20;
{формирование массива случайных чисел, принадлежащих промежутку [-20;20)}
write (A[i], ' '); {вывод элементов массива на экран}
end;
writeln ; {перевод курсора на новую строку}
writeln('преобразованный массив: ');
for i:=1 to 15 do
begin
if A[i] mod 2 = 0
then A[i]:=round(A[i]/2) {преобразование массива по условию}
else A[i]:=A[i]*3;
write (A[i], ' '); {вывод элементов массива в строку}
end;
End.
Результат работы программы может выглядеть так:
исходные значения:
-2 1 -17 3 11 0 1 10 3 14 17 12 17 19 -1
преобразованный массив:
-1 3 -51 9 33 0 3 5 9 7 51 6 51 57 -3
Б) отрицательные числа возводит в квадрат, а из неотрицательных извлекает квадратный корень;
Ответ:
Var A: array[1..15] of integer;
i: integer;
Begin
writeln ('исходные значения:');
for i:=1 to 15 do
begin
A[i]:=random(41)-20;
{формирование массива случайных чисел, принадлежащих промежутку [-20;20)}
write (A[i], ' '); {вывод элементов массива на экран}
end;
writeln ; {перевод курсора на новую строку}
writeln('преобразованный массив: ');
for i:=1 to 15 do
begin
if A[i]
then A[i]:=sqr(A[i]) {преобразование массива по условию}
else A[i]:=round(sqrt(A[i]));
write (A[i], ' '); {вывод элементов массива в строку}
end;
End.
Результат работы программы может выглядеть так:
исходные значения:
-19 2 0 6 -18 19 -14 16 7 20 3 -5 -2 -11 10
преобразованный массив:
361 1 0 2 324 4 196 4 3 4 2 25 4 121 3
В) увеличивает в два раза числа, кратные пяти, а остальные уменьшает в два раза;
Ответ:
Var A: array[1..15] of integer;
i: integer;
Begin
writeln ('исходные значения:');
for i:=1 to 15 do
begin
A[i]:=random(41)-20;
{формирование массива случайных чисел, принадлежащих промежутку [-20;20)}
write (A[i], ' '); {вывод элементов массива на экран}
end;
writeln ; {перевод курсора на новую строку}
writeln('преобразованный массив: ');
for i:=1 to 15 do
begin
if A[i] mod 5 = 0
then A[i]:=A[i]*2 { преобразование массива по условию}
else A[i]:=round(A[i]/2);
write (A[i], ' '); {вывод элементов массива в строку}
end;
End.
Результат работы программы может выглядеть так:
исходные значения:
10 13 19 -18 -15 8 9 7 -6 12 -14 -18 -4 -12 -2
преобразованный массив:
20 6 10 -9 -30 4 4 4 -3 6 -7 -9 -2 -6 -1
Г) меняет местами значения первого и последнего элементов массива.
Ответ:
Var A: array[1..15] of integer;
k,i: integer;
Begin
writeln ('исходные значения:');
for i:=1 to 15 do
begin
A[i]:=random(41)-20;
{формирование массива случайных чисел, принадлежащих промежутку [-20;20)}
write (A[i], ' '); {вывод элементов массива на экран}
end;
writeln ; {перевод курсора на новую строку}
writeln('преобразованный массив: ');
k:=A[1];
A[1]:=A[15];
A[15]:=k; {преобразование массива по условию}
for i:=1 to 15 do
write (A[i], ' '); {вывод элементов массива в строку}
End.
Результат работы программы может выглядеть так:
исходные значения:
0 5 -8 20 -19 12 8 18 4 20 12 -11 -11 6 -19
преобразованный массив:
-19 5 -8 20 -19 12 8 18 4 20 12 -11 -11 6 0
§ 9. Поиск элементов с заданными свойствами
Коротко о главном:
Алгоритм, в котором последовательно просматриваются все элементы и проверяется выполнение условий поиска, называют последовательным (линейным).
На ёлочном базаре случайным образом берут несколько ёлок. Их высота в метрах заносится в массив вещественных чисел. Для этих данных могут быть сформулированы следующие задачи поиска:
А) определить, есть ли хотя бы одна ёлка, высота которой равна 150 см (или больше 170 см, или меньше 100 см);
Б) найти номер (индекс) по списку ёлки, высота которой 150 см;
В) найти номера (индексы) ёлок, имеющих высоту 160 см (или меньше (больше) высоты первой (последней) по списку ёлки);
Г) найти номера (индексы) ёлок, высота которых 160 см (или больше (меньше) 165 см);
Д) найти номер (индекс) ёлки, высота которой максимальная (минимальная).
Упражнение 1
Составьте программу, которая формирует массив из шестнадцати случайных чисел от -20 до 20 и:
А) находит элементы с нулевыми значениями;
Б) находит индексы чётных элементов;
В) подсчитывает количество отрицательных элементов;
Г) Определяет, есть ли в этом массиве хотя бы одно число, кратное трём;
Д) находит в этом массиве индексы элементов, значения которых кратны трём.
На экран выводятся исходный массив и найденные элементы.
Ответ:
Var A: array[1..16] of integer;
k,i: integer;
Begin
writeln ('исходные значения:');
for i:=1 to 16 do
begin
A[i]:=random(41)-20;
{формирование массива случайных чисел, принадлежащих промежутку [-20;20)}
write (A[i], ' '); {вывод элементов массива на экран}
end;
writeln ; {перевод курсора на новую строку}
write('нулевые значения имеют элементы с индексами: ');
for i:=1 to 16 do
if A[i] = 0 then write (i, ' ');
{'нахождение и вывод элементов с нулевыми значениями'}
writeln ; {перевод курсора на новую строку}
write ('чётными являются элементы с индексами: ');
for i:=1 to 16 do
if A[i] mod 2 = 0 then write (i, ' ');
{'нахождение и вывод индексов чётных элементов'}
writeln ; {перевод курсора на новую строку}
k:=0;
for i:=1 to 16 do
if A[i]
writeln ('количество отрицательных элементов равно ', k);
{'вывод количества отрицательных элементов'}
g:=0;
for i:=1 to 16 do
if A[i] mod 3 = 0 then g:=1; {'нахождение элемента, кратного трём'}
if g=1 then writeln ('массив содержит элемент кратный трём')
else writeln ('массив не содержит элемент кратный трём');
write ('индексы элементов, кратных трём: ');
for i:=1 to 16 do
if A[i] mod 3 = 0 then write (i, ' ')
End.
Результат работы программы может выглядеть так:
исходные значения:
17 19 18 -5 9 -19 5 -8 10 -8 -11 -14 -5 2 -11 15
нулевые значения имеют элементы с индексами:
чётными являются элементы с индексами: 3 8 9 10 12 14
количество отрицательных элементов равно 8
массив содержит элемент кратный трём
индексы элементов, кратных трём: 3 5 16
Упражнение 2
В массиве хранятся сведения о количестве осадков (в мм), выпадавших ежедневно в сентябре. Составьте программу, которая подсчитывает количество дождливых дней (h[i]0).
Ответ:
Var A: array[1..30] of integer;
k, i: integer;
Begin
writeln('Количество осадков, выпавших в сентябре');
for i:=1 to 30 do
begin
A[i]:=random(11);
{формирование массива случайных чисел, принадлежащих промежутку [0;10]}
Write (A[i],' ');
end;
writeln; {перевод курсора на следующую строку}
for i:=1 to 30 do
If A[i]0 then k:=k+1; {поиск в массиве по условию}
Writeln ('Количество дождливых дней в сентябре: ',k);
End.
Результат работы программы может выглядеть так:
Количество осадков, выпавших в сентябре
1 3 5 3 10 6 10 0 5 8 8 4 3 0 0 3 2 0 3 10 8 2 5 7 5 0 2 0 8 7
Количество дождливых дней в сентябре: 24
Упражнение 3
В массиве хранится информация о среднедневной температуре декабря. Составьте программу, которая подсчитывает, сколько в декабре было дней с нулевой, отрицательной и положительной температурой.
Ответ:
Var A: array[1..31] of integer;
k,b,c,i: integer;
Begin
writeln('Среднедневная температура декабря:');
for i:=1 to 31 do
begin
A[i]:=random(41)-30;
{формирование массива случайных чисел, принадлежащих промежутку [-30;10)}
Write (A[i],' ');
end;
writeln;
for i:=1 to 31 do
begin
if A[i]0 then k:=k+1; {поиск в массиве по условию}
if A[i]=0 then b:=b+1; {поиск в массиве по условию}
if A[i]
end;
Writeln ('В декабре было дней с положительной температурой: ',k);
Writeln ('В декабре было дней с нулевой температурой: ',b);
Writeln ('В декабре было дней с отрицательной температурой: ',c);
End.
Результат работы программы может выглядеть так:
Среднедневная температура декабря:
0 5 6 -13 -7 -25 -6 1 1 -7 10 -20 10 -4 1 -4 -22 -25 -23 -27 -30 0 -17 -19 -10 -13 -9 -15 1 -28 -9
В декабре было дней с положительной температурой: 8
В декабре было дней с нулевой температурой: 2
В декабре было дней с отрицательной температурой: 21
Упражнение 4
В массиве хранится информация о стоимости товаров. Составьте программу, которая определяет стоимость самого дешевого (дорогого) товара и его индекс.
Ответ:
Var A: array[1..10] of integer;
k,m,maks,min,i: integer;
Begin
writeln('Стоимость товаров:');
for i:=1 to 10 do
begin
A[i]:=random(91)+10;
{формирование массива случайных чисел принадлежащих промежутку [10;100)}
Write (A[i],' ');
end;
writeln; {перевод курсора на следующую строку}
k:=1; {начальное значение номера самого дорогого товара}
maks:=A[1]; {начальное значение самого дорогого товара}
m:=1; {начальное значение номера самого дешёвого товара}
min:=A[1]; {начальное значение самого дешёвого товара}
for i:=2 to 10 do
begin
If A[i]A[k] then
begin
maks:=A[i];k:=i;
end; {поиск максимального элемента массива и его номера}
If A[i]
Begin
min:=A[i];m:=i;
end; {поиск минимального элемента массива и его номера}
end;
Writeln ('Самый дорогой товар с номером ',k,' его стоимость ',maks);
Writeln ('Самый дешёвый товар с номером ',m,' его стоимость ',min);
End.
Результат работы программы может выглядеть так:
Стоимость товаров:
85 67 33 99 92 17 88 29 87 85
Самый дорогой товар с номером 4 его стоимость 99
Самый дешёвый товар с номером 6 его стоимость 17
§ 10. Решение задач с использованием массивов.
Упражнение 1
Сосуды цилиндрической формы заполнены до краёв жидкостью плотностью d=1200 кг/м3.

1 2 3 4 5 6
Составьте программу, которая вычисляет:
А) давление столба на дно сосудов p = dgh (g=9,8 м/с2);
Б) массу жидкости в каждом сосуде m=dV=dhS (S=3,14 R2);
В) суммарную массу жидкости.
Требуемые исходные данные (радиус R, высота столба жидкости h) вводят в массив с клавиатуры, результат выводится на экран.
Ответ:
Var R,V: array[1..6] of integer;
d,h,i: integer;
g,p,m,s,msum: real;
Begin
writeln('Введите радиусы сосудов через пробел');
for i:=1 to 6 do
read (R[i]);
Writeln('Введите высоту столба жидкости через пробел');
for i:=1 to 6 do
read (V[i]);
g:=9.8;
d:=1200;
for i:=1 to 6 do
begin
p:= d*g*V[i]; {расчёт давления столба жидкости на дно сосудов}
writeln('давление столба жидкости ' , i , ' сосуда равно ', p);
{вывод результата}
end;
writeln; {перевод курсора на следующую строку}
msum:=0; {начальное значение суммарной массы жидкости}
for i:=1 to 6 do
begin
s:=3.14*sqr(R[i]); {расчёт площади сосуда}
m:=d*V[i]*s; {расчёт массы жидкости в каждом сосуде}
writeln('масса жидкости ' , i , ' сосуда равна ', m);
{вывод результата}
msum:=msum+m; {пасчёт суммарной массы жидкости}
end;
writeln; {перевод курсора на следующую строку}
write('суммарная масса жидкости равна ', msum);
{вывод результата суммарной массы жидкости}
End.
Результат работы программы может выглядеть так:
Введите радиусы сосудов через пробел
2 4 1 3 3 5
Введите высоту столба жидкости через пробел
4 2 6 4 3 1
давление столба жидкости 1 сосуда равно 47040
давление столба жидкости 2 сосуда равно 23520
давление столба жидкости 3 сосуда равно 70560
давление столба жидкости 4 сосуда равно 47040
давление столба жидкости 5 сосуда равно 35280
давление столба жидкости 6 сосуда равно 11760
масса жидкости 1 сосуда равна 60288
масса жидкости 2 сосуда равна 120576
масса жидкости 3 сосуда равна 22608
масса жидкости 4 сосуда равна 135648
масса жидкости 5 сосуда равна 101736
масса жидкости 6 сосуда равна 94200
суммарная масса жидкости равна 535056
Упражнение 2
В лабораторной работе по определению теплоёмкости вещества измеряют приращения температуры (ΔT) при сообщении одинакового количества теплоты Q=420 Дж шести образцам одинаковой массы m=0,12 кг, изготовленным из разных материалов. Составьте программу, которая вычисляет теплоёмкость веществ с=Q/m ΔT. Данные измерений ΔT вводятся в массив с клавиатуры. Результаты измерений и вычислений выводятся в таблицу.
Ответ:
Var T: array[1..6] of integer;
V: array[1..6] of real;
q,i: integer;
m: real;
Begin
writeln('Введите приращения температуры через пробел');
for i:=1 to 6 do
read (T[i]);
q:=420;
m:=0.12;
for i:=1 to 6 do
begin
V[i]:=q/(m*T[i]); {расчёт теплоёмкости вещества}
writeln('теплоёмкость вещества ', i , ' образца ', V[i]:8:2);
{форматный вывод результата}
end;
End.
Результат работы программы может выглядеть так:
Введите приращения температуры через пробел
2 3 8 1 9 5
теплоёмкость вещества 1 образца 1750.00
теплоёмкость вещества 2 образца 1166.67
теплоёмкость вещества 3 образца 437.50
теплоёмкость вещества 4 образца 3500.00
теплоёмкость вещества 5 образца 388.89
теплоёмкость вещества 6 образца 700.00