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


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

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

Презентация: http://metodist.lbz.ru/authors/informatika/3/files/eor9/presentations/9-2-2.ppt


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.