Хорошие задачи!!!
Вложение | Размер |
---|---|
otchyot.doc | 61.5 КБ |
Отчёт по программированию.
1.(14)Данные о направление ветра (Северного, восточного, западного, южного) и силе ветра за декаду ноября хранятся в массиве. Определить сколько дней дул южный ветер с силой, превышающей 8 м/с.
program zadacha_1;
uses crt;
var veter: array [1..30] of string;
skor2, i,j,kol: integer;
x: longint;
skor,s: string;
begin
clrscr;
заполняем массив:
veter[1]:='Южный 9';
veter[2]:='Северный 8';
veter[3]:='Западный 10';
veter[4]:='Южный 11';
veter[5]:='Восточный 6';
veter[6]:='Западный 8';
veter[7]:='Южный 10';
veter[8]:='Южный 7';
veter[9]:='Северный 8';
veter[10]:='Южный 11';
veter[11]:='Северный 9';
veter[12]:='Восточный 7';
veter[13]:='Западный 9';
veter[14]:='Южный 9';
veter[15]:='Восточный 7';
veter[16]:='Северный 6';
veter[17]:='Южный 5';
veter[18]:='Северный 8';
veter[19]:='Восточный 7';
veter[20]:='Западный 5';
veter[21]:='Северный 5';
veter[22]:='Южный 10';
veter[23]:='Западный 11';
veter[24]:='Восточный 3';
veter[25]:='Северный 9';
veter[26]:='Южный 9';
veter[27]:='Южный 6';
veter[28]:='Южный 5';
veter[29]:='Южный 10';
veter[30]:='Северный 9';
kol:=0;
skor2:=0;
skor:='';
начало подсчета кол-ва дней
for i:=1 to 30 do
begin
s:=veter[i];
if s[1]='Ю' then
тело подсчета кол-ва дней
begin
skor2:=0;
skor:='';
for j:=7 to length(s) do
skor:=skor+s[j];
val(skor, skor2, x);
if skor2>8 then kol:=kol+1;
end;
end;
writeln('Кол-во дней с Южным ветром более 8 м/c = ', kol);
readln;
end.
3.(44)Подсчитать кол-во элементов одномерного массива, для которых выполняется неравенство i*i
program zadacha_2;
uses crt;
var a: array [1..10] of integer;
i,p: integer;
begin
for i:=1 to 10 do
begin
writeln('Введите ' , i , ' элемент');
readln(a[i]);
end;
p:=1;
writeln('Введенный массив:');
for i:=1 to 10 do
begin
if (a[i]i*i) then p:=p+1;
write(' ' , a[i]);
end;
writeln;
writeln('Кол-во элементов i*i < a[i] < i = ' , p);
readln;
end.
4.(59)Дан список футбольных команд высшей лиги России и кол-во очков, набранных каждой командой в чемпионате России. Известно, что нет команд с равным числом очков, а две команды, набравшие наименьшее число очков, покинут высшую лигу. Какие это команды?
program zadacha_4;
uses crt;
var komanda: array [1..5] of string;
min2,z,z2,min,k,i,j,kol2: integer;
s, kol: string;
x: longint;
begin
komanda[1]:='Спартак 9';
komanda[2]:='Динамо 8';
komanda[3]:='Олимпия 6';
komanda[4]:='Зенит 5';
komanda[5]:='Молния 10';
min:=10000;
for i:=1 to 5 do
begin
s:=komanda[i];
j:=1;
while s[j]<>' ' do
j:=j+1;
j:=j+1;
kol:='';
for k:=j to length(s) do
kol:=kol+s[k];
val(kol,kol2,x);
if kol2
end;
min2:=10000;
for i:=1 to 5 do
begin
s:=komanda[i];
j:=1;
while s[j]<>' ' do
j:=j+1;
j:=j+1;
kol:='';
for k:=j to length(s) do
kol:=kol+s[k];
val(kol,kol2,x);
if (kol2
end;
writeln(komanda[z], ' ' , komanda[z2]);
readln;
end.
1.(2)Имеется одномерный массив А(20), элементы которого случайные целые числа из интервала (100, 500). Необходимо преобразовать этот массив в двумерный В(4,5), и вывести элементы первого и второго массивов. Преобразуйте двумерный в одномерный.
program zadacha_1;
uses crt;
var a,a2: array [1..20] of integer;
m : array [1..4, 1..5] of integer;
k,i,j,p: integer;
begin
for i:=1 to 20 do
begin
writeln('Введите ' , i , ' элемент');
readln(a[i]);
end;
k:=1;
for i:=1 to 4 do
for j:=1 to 5 do
begin
m[i,j]:=a[k];
k:=k+1;
end;
writeln('Одномерный массив:');
for i:=1 to 20 do
write (' ' , a[i]);
writeln;
writeln('Двумерный массив:');
for i:=1 to 4 do
begin
for j:=1 to 5 do
write(' ' , m[i,j]);
writeln;
end;
k:=1;
for i:=1 to 4 do
for j:=1 to 5 do
begin
a2[k]:=m[i,j];
k:=k+1;
end;
writeln;
writeln('Одномерный массив:');
for i:=1 to 20 do
write(' ' , a2[i]);
readln;
end.
3.В данной целочисленной матрице размера 6х4 все положительные элементы заменить на 1, все отрицательные на -1, нулевые элементы оставить без изменения. Напечатать исходную и полученную матрицу. program zadacha_3;
uses crt;
var
a: array[1..6, 1..4] of integer;
j,i: integer;
begin
clrscr;
randomize;
for i:=1 to 6 do
for j:=1 to 4 do
a[i,j]:=random(200)-20;
writeln('Исходная матрица:');
for i:=1 to 6 do
begin
for j:=1 to 4 do
write (' ' , a[i,j]);
writeln;
end;
for i:=1 to 6 do
for J:=1 to 4 do
begin
if a[i,j] >0 then a[i,j]:=1;
if a[i,j]<0 then a[i,j]:=-1;
end;
writeln('Конечная матрица:');
for i:=1 to 6 do
begin
for j:=1 to 4 do
write (' ' , a[i,j]);
writeln;
end;
readln;
end.
1. Введите с клавиатуры в массив пять целочисленных значений. Выведите их в одну строку через запятую. Получите для массива среднее арифметическое.
uses Crt;
var
A : array [1..5] of Integer;
i : Integer;
s : Real;
BEGIN
ClrScr;
WriteLn('Введите элементы массива :');
for i:= 1 to 5 do
begin
Write('Введите A[', i, '] = ');
ReadLn(A[i]);
end;
s := 0;
WriteLn('Введенный массив :');
for i:= 1 to 5 do
begin
s := s + A[i];
Write(A[i], ' ; ');
end;
WriteLn;
WriteLn('Среднее арифметическое значений массива : ', s/5:3:2);
repeat until KeyPressed;
END.
2. ВВедите с клавиатуры пять целочисленных элементов массива Х. Выведите на экран значения корней и квадратов каждого из элементов массива.
uses Crt;
var
X : array [1..5] of LongInt;
i : Integer;
BEGIN
ClrScr;
WriteLn('Введите элементы массива :');
for i:= 1 to 5 do
begin
Write('Введите X[', i, '] = ');
ReadLn(X[i]);
end;
WriteLn('Полученный данные :');
WriteLn('корень и квадрат');
for i:= 1 to 5 do
begin
if X[i] >= 0 then
Write(sqrt(X[i]):7:2)
else
Write('ошибка');
WriteLn(' и ', sqr(X[i]):4);
end;
repeat until KeyPressed;
END.
3. Создайте массив из пяти фамилий и выведите их на экран столбиком, начиная с последней.
uses Crt;
var
F : array [1..5] of String;
i : Integer;
BEGIN
ClrScr;
WriteLn('Введите фамилии :');
for i:= 1 to 5 do
begin
Write('Фамилия ', i, ' : ');
ReadLn(F[i]);
end;
WriteLn('Обратный вывод :');
for i:= 1 to 5 do
WriteLn(F[6-i]);
repeat until KeyPressed;
END.
4. Создайте массив из пяти фамилий и выведите их на экран те из них, которые начинются с определённой буквы, которая вводится с клавиатуры.
uses Crt;
var
F : array [1..5] of String;
B : Char;
i : Integer;
k : Byte;
BEGIN
ClrScr;
WriteLn('Введите фамилии :');
for i:= 1 to 5 do
begin
Write('Фамилия ', i, ' : ');
ReadLn(F[i]);
end;
Write('Введите букву : ');
ReadLn(B);
WriteLn('Вывод сортировки :');
k := 0; {кол-во выведенных фамилий}
for i:= 1 to 5 do
if F[i][1] = B then
begin
WriteLn(F[i]);
Inc(k);
end;
if k = 0 then
WriteLn('Список пуст.');
repeat until KeyPressed;
END.
5. Создайте массив А[1..7] с помощью генератора случайных чисел и выведите их на экран. Увеличьте все его элементы в 2 раза.
uses Crt;
var
A : array [1..7] of Integer;
i : Integer;
BEGIN
ClrScr;
Randomize;
WriteLn('Полученный массив :');
for i:= 1 to 7 do
begin
A[i] := Random(100)-30;
Write(A[i], ' ; ');
end;
WriteLn;
WriteLn('Полученные элементы :');
for i:= 1 to 7 do
begin
A[i] := A[i]*2;
Write(A[i], ' ; ');
end;
WriteLn;
Write('Нажмите любую клавишу...');
repeat until KeyPressed;
END.
6. Создайте массив А[1..8] с помошью генератора случайных чисел с элементами от -10 до 10 и выведите его на экран. Подсчитайте количество отрицательных элементов массива.
uses Crt;
var
A : array [1..8] of Integer;
i : Integer;
k : Integer;
BEGIN
ClrScr;
Randomize;
k := 0;
WriteLn('Полученный массив :');
for i:= 1 to 8 do
begin
A[i] := Random(20)-10;
Write(A[i], ' ; ');
if A[i] < 0 then
Inc(k);
end;
WriteLn;
if k = 0 then
WriteLn('Отрицательных элементов нет.')
else
WriteLn('Количество отрицательных элементов : ', k);
Write('Нажмите любую клавишу...');
repeat until KeyPressed;
END.
7. Создайте массив A[1..12] с помощью генератора случайных чисел с элементами от -20 до 10 и выведите его на экран. Замените все отрицательные элементы массива числом 0.
uses Crt;
var
A : array [1..12] of Integer;
i : Integer;
k : Integer;
BEGIN
ClrScr;
Randomize;
WriteLn('Полученный массив :');
for i:= 1 to 12 do
begin
A[i] := Random(30)-20;
Write(A[i]:3, ' ; ');
if A[i] < 0 then
A[i] := 0;
end;
WriteLn;
WriteLn('Полученный массив :');
for i:= 1 to 12 do
Write(A[i]:3, ' ; ');
WriteLn;
Write('Нажмите любую клавишу...');
repeat until KeyPressed;
END.
8. Создайте целочисленный массив A[1..15] с помощью генератора случайных чисел с элементами от - 15 до 30 и выведите его на экран. Определите самый большой элемент массива и его индекс.
uses Crt;
var
A : array [1..15] of Integer;
i : Integer;
m : Integer;
BEGIN
ClrScr;
Randomize;
WriteLn('Полученный массив :');
for i:= 1 to 15 do
begin
A[i] := Random(45)-15;
Write(A[i], ' ; ');
end;
m := 1; {пусть максимальным будет первый элемент}
for i:= 2 to 15 do {если среди остальных}
if A[m] < A[i] then {есть его большый, тогда}
m := i; {запоминаем его номер}
WriteLn;
WriteLn('Максимальный элемент : ', A[m]);
WriteLn('Его индекс : ', m);
Write('Нажмите любую клавишу...');
repeat until KeyPressed;
END.
9. С 8 до 20 часов температура воздуха измерялась ежечасно. Известно, что в течение этого времени температура понижалась. Определите, в котором часу была впервые отмечена отрицательная температура.
uses Crt;
var
start, i, step : Integer;
BEGIN
ClrScr;
Write('Температура воздуха в 8 утра : ');
ReadLn(start);
Write('Шаг изменения температуры : ');
ReadLn(step);
WriteLn('Полученная таблица изменения температур :');
for i:= 0 to 11 do {т.к. с 8 до 20 всего 12 часов}
WriteLn(8+i:2, '-', 9+i:2, ' ч. : ', start-step*i:3, ' °C');
for i:= 0 to 12 do {т.к. с 8 до 20 всего 12 часов}
if start < 0 then
begin
WriteLn('В ', 8+i, ' часов была впервые отмечена отрицательная температура.');
break;
end
else
Dec(start, step);
if start >= 0 then
WriteLn('Отрицательной температуры отмечено небыло.');
Write('Нажмите любую клавишу...');
repeat until KeyPressed;
END.
Где спят снеговики?
Рисуем тыкву
Сорняки
Ёжикина Радость
Как Снегурочке раскатать тесто?