• Главная
  • Блог
  • Пользователи
  • Форум
  • Литературное творчество
  • Музыкальное творчество
  • Научно-техническое творчество
  • Художественно-прикладное творчество

Работа с массивами

Опубликовано Мусин Олег Шамильевич вкл 24.11.2011 - 18:50
Мусин Олег Шамильевич
Автор: 
Хайдаршин Александр

Хорошие задачи!!!

Скачать:

ВложениеРазмер
Microsoft Office document icon otchyot.doc61.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 (kol2min) then begin min2:=kol2; z2:=i; end;

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.


Поделиться:

Где спят снеговики?

Рисуем тыкву

Сорняки

Ёжикина Радость

Как Снегурочке раскатать тесто?