СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

ПО УЧЕБНИКУ 9 КЛАССА. ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ (МАССИВЫ)

Категория: Информатика

Нажмите, чтобы узнать подробности

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

§ 5. Структурированный тип данных: массив

 

Просмотр содержимого документа
«ПО УЧЕБНИКУ 9 КЛАССА. ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ (МАССИВЫ)»

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

§ 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

  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