Ответы на тему Одномерные массивы целых чисел


Учебник по Информатике 9 класс Босова

1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Используйте эти материалы при подготовке ответов на вопросы и выполнении заданий.

Презентация: Перейти


2. Может ли массив одновременно содержать целые и вещественные значения?

Да, может, если массив имеет вещественный тип.


3. Для чего необходимо описание массива?

Описание массива необходимо для выделения участка памяти нужного размера для хранения массива.
Описание массива позволяет выделить в памяти необходимое количество элементов и обеспечить доступ к ним по индексам. Массивы в Паскале могут быть одномерными, двумерными и многомерными, и описание массива указывает их размерности и диапазоны значений индексов.


4. Массивы:

а) for i:=1 to 10 do a[i]:=random(101)-50
Данный массив будет сформирован следующим образом: значениям массива от a[1] до a[10] будет присвоено случайное целое число, принадлежащее отрезку [-50; 50];

б) for i:=1 to 20 do a[i]:=a[i]:=i
Значениям массива от a[1] до a[20] будет справедливо следующее: i-му массиву будет присвоено i-е значение(будет присвоено значение, совпадающее с индексом элемента);

в) for i:=1 to 5 do a[i]:=a[i]:=2*i-1
Значениям массива от a[1] до a[5] будет справедливо следующее: i-му массиву будет присвоено разность чисел (2*i) и единицы.


5. Количество жильцов случайно от 50 до 200 человек, а число домов n=30

Для решения задачи мы объявим массив с целым типом данных. Для каждого дома присвоим случайное количество проживающих человек в количестве от 50 до 200. И в конце сложим значения массива, в котором находится информация о количестве проживающих в определенном доме.

Задача на Паскаль:
program z_5;
var i, s: integer;
a: array [1..30] of integer;

BEGIN
s:=0;
for i:=1 to 30 do begin
a[i]:= random(50, 200);
s:=s + a[i];
end;

writeln('В 30-ти домах ', s , ' жителей.');
END.


6. Программа, которая вычисляет среднюю температуру за неделю. Исходные данные вводятся с клавиатуры.

Исходные данные: П=12; В=10; С=16; Ч=18; П=17; С=16; В=14.
Выходные данные: 14.71

Код на Паскаль:
program z_6;
var i: integer;
s: real;
a: array [1..7] of real;
d: array [1..7] of string;
BEGIN
s:=0;
writeln ('Введите температуру');
for i:=1 to 7 do begin
if i=1 then write('Понедельник>>');
if i=2 then write('Вторник>>');
if i=3 then write('Среда>>');
if i=4 then write('Четверг>>');
if i=5 then write('Пятница>>');
if i=6 then write('Суббота>>');
if i=7 then write('Воскресенье>>');
readln (a[i]);
s:=s + a[i];
end;
s:=s/7;
writeln('Средняя температура за неделю: ', s:0:2);
END.


7. Дан массив из десяти целых чисел. Определите, сколько элементов массива имеют максимальное значение.

program z_7;
var i, s, m: integer;
a: array [1..10] of integer;
begin
s:=0; m:=0;
writeln ('Введите 10 целых чисел:');
for i:=1 to 10 do begin
write (i, ' число: ');
readln (a[i]);
if a[i] > s then s := a[i];
end;

for i := 1 to 10 do
begin
if a[i]=s then m:=m+1;
end;

writeln(m, ' элемента(-ов) массива имеют максимальное значение.');
end.


8. Какой этап решения задачи на ПК является наиболее трудоемким?

Сначала с помощью цикла с параметром for объявим оценки 20-ти ученикам. Оценки будут случайные. После определим количество двоек, троек, четверок и пятерок, полученных за диктант.

program z_8;
var i, s2, s3, s4, s5: integer;
a: array [1..20] of integer;
begin
for i:=1 to 20 do begin
a[i] := random(2, 5);
if a[i] = 2 then s2:=s2+1;
if a[i] = 3 then s3:=s3+1;
if a[i] = 4 then s4:=s4+1;
if a[i] = 5 then s5:=s5+1;
end;

writeln('Двоек: ', s2, '; Троек: ', s3, '; Четверок: ', s4, '; Пятерок: ', s5);
end.


9. Объявлен набор в школьную баскетбольную команду. Известен рост каждого из n учеников, желающих попасть в эту команду. Составьте алгоритм подсчета количества претендентов, имеющих шанс попасть в команду, если рост игрока быть не менее 170.

Случайный рост ученика в диапазоне от 150 до 200 см, число претендентов n=50;

Программа на ПаскальABC:
program z_9;
var i, s: integer;
a: array [1..50] of integer;
begin
s:=0;
for i:=1 to 50 do begin
a[i] := random(150, 200);
if a[i]>=170 then s:=s+1;
end;
writeln(s, ' ученика(-ов) могут претендовать в баскетбольную команду.');
end.


10.

program z_10;
var a, b: array [1..10] of integer;
s: array [1..10] of real;
i: integer; max: real;
BEGIN
randomize;
for i:=1 to 10 do begin
a[i]:=random(10)+1;
b[i]:=random(10)+1;
s[i]:=a[i]*b[i]/2;
writeln ('a[', i, '] = ', a[i]:6, ' b[' , i, '] = ', b[i]:6, ' s[', i, '] = ', s[i]:6:2);
end;
max:=s[1];
for i:=2 to 10 do
if s[i]>max then max:=s[i];
for i:=1 to 10 do
if s[i]=max then writeln ('i = ', i, ' a = ', a[i], ' b = ', b[i], ' s = ', s[i]);
END.


11. Занесите информацию о 10-ти европейских странах в массивы. Выведите названия стран в порядке возрастания плотности их населения.

Площадь приведена в тыс.км^2, численность населения - в тыс. чел.
program z_11;
var p:array [1..10] of real = (244.1, 357, 132, 43.1, 504.8, 301.2, 312.7, 92.0, 337, 551);
n: array [1..10] of string;
i, j, imin: integer;
x: real;
r: string;
const
k: array [1..10] of real = (58100, 81200, 10300, 5190, 39100, 57200, 38500, 9800, 5060, 57800);
BEGIN
n[1]:='Великобритания'; n[2]:='Германия'; n[3]:='Греция'; n[4]:='Дания'; n[5]:='Испания'; n[6]:='Италия'; n[7]:='Польша'; n[8]:='Португалия'; n[9]:='Финляндия'; n[10]:='Франция';
for i:=1 to 9 do begin
imin:=i;
for j:=i+1 to 10 do
if p[j] x:=p[i];
p[i]:=p[imin];
p[imin]:=x;
r:=n[i];
n[i]:=n[imin];
n[imin]:=r;
end;
writeln ('Отсортированная информация');
for i:=1 to 10 do
writeln (n[i], ' - ', p[i]);
END.