Примеры решаемых задач

Пример 1. Составить программу, которая сформирует случайным образом массив из 20 целых чисел и:

а) выведет его в одну строку на экране;

б) выведет элементы массива, стоящие на четных местах и вычислит их сумму;

в) вычислит количество нечетных элементов;

г) упорядочит элементы массива по убыванию.

Программа:

Program М1;

Uses Crt;

Type Numbers = Array [1..20 ] Of Integer; {}

Var A: Numbers;

I, J, S, K, P: Integer;

Begin

Clrscr;

Randomize; { инициализируем датчик случайных чисел }

For I:= 1 To 20 Do { заполняем массив А случайными числами от 0 до 99}

A [ I ]:= Random (100);

{ Задача (а) }

Writeln (‘Получили массив:’); { выводим полученный массив на экран }

For I:= 1 To 20 Do

Write (A [ I ]: 3);

Writeln; { переводим курсор в следующую строку экрана }

{ Задача (б) }

Writeln (‘Элементы на четных местах: ’);

S:= 0; { Обнулили сумму }

For I:= 1 To 20 Do

If I mod 2 = 0 { Если у элемента четный НОМЕР }

Then Begin

Write (A [ I ]: 3); { то выводим его }

S:= S + A [ I ] { и накапливаем сумму }

End;

Writeln; { переводим курсор в следующую строку экрана }

Writeln (‘ Их сумма ’, S); { выводим значение суммы }

{ Задача (в) }

K:= 0; { Обнулили счетчик нечетных элементов в массиве }

For I:= 1 To 20 Do

If A [ I ] mod 2 <> 0 { Если ЭЛЕМЕНТ нечетный }

Then K:= K + 1; { то увеличиваем значение счетчика }

Writeln (‘ Количество нечетных элементов ’, К);

{ выводим значение счетчика }

{ Задача (г) }

{ Сортируем массив А по убыванию }

For I:= 1 To 19 Do

For J:= I + 1 To 20 Do

If A[ J ] > A[ I ] Then

Begin

P:= A[ I ]; {меняем местами i-ый и j-ый элементы массива А}

A[ I ]:= A[ J ]; { для этого используем переменную p }

A[ J ]:= P

End;

Writeln (‘Получили массив:’); {выводим упорядоченный массив на экран}

For I:= 1 To 20 Do

Write (A [ I ]: 3);

Readln

End.

Пример 2. Составить программу, которая сформирует случайным образом двумерный массив N x N целых чисел и:

а) выведет его на экран в виде матрицы;

б) выведет элементы массива, стоящие над главной диагональю;

в) вычислит суму элементов, стоящих на побочной диагонали;

г) вычислит суммы столбцов.

 
 

Пояснение:

Если элемент M [i, j] двумерного массива M размера n x n расположен на главной диагонали, то i = j (номер строки равен номеру столбца).

Если элемент M [i, j] двумерного массива M размера n x n расположен на побочной диагонали, то i + j = n + 1 (сумма его индексов равна n + 1).

Программа:

Program М2;

Uses Crt;

Type Numbers = Array [1..20, 1..20 ] Of Integer;

{ Тип - двумерный массив 20 х 20 }

Var A: Numbers;

N, I, J, S: Integer;

Begin

Clrscr;

Write (‘Введите количество строк и столбцов ’);

Readln(N);

Randomize; { инициализируем датчик случайных чисел }

For I:= 1 To N Do { Организуем цикл по строкам }

For J:= 1 T N Do { Организуем цикл по столбцам }

A [ I,J]:= Random (100); { заполняем массив А случайными числами }

{ Задача (а) }

Writeln (‘Получили массив:’); { выводим массив на экран }

For I:= 1 To N Do

Begin

For J:= 1 To N Do

Write (A [I, J]: 3); {выводим все элементы i-ой строки в одну строку на экране}

Writeln { переводим на экране курсор на следующую строку}

End;

{ Задача (б) }

Writeln (‘Элементы над главной диагональю:’);

For I:= 1 To N Do

Begin

For J:= 1 To N Do

If J >= I { Eсли элемент на главной диагонали или над ней, }

Then Write (A [I, J]: 3) { то выводим его}

Else Write(‘ ‘:3); { иначе выводим три пробела }

Writeln { переводим на экране курсор на следующую строку}

End;

{ Задача (в) }

S:= 0;

For I:= 1 To N Do

For J:= 1 To N Do

If J + I = N + 1 { Eсли элемент на побочной диагонали }

Then S:= S + A [I, J]; { то накапливаем сумму }

Writeln (‘Сумма элементов побочной диагонали ’, S);

{ Задача (г) }

For J:= 1 To N Do { организуем цикл по столбцам }

Begin

S:= 0; { обнуляем сумму для каждого столбца }

For I:= 1 To N Do { цикл по строкам }

S:= S + A [I, J]; { накапливаем сумму элементов столбца }

Writeln (‘ Сумма элементов ’, J, ‘ столбца ’, S) { выводим на экран значение суммы }

End;

Readln

End.

Контрольные задания

9.1. Составить программу, которая формирует случайным образом одномерный массив из N элементов и:

a.) выводит те его элементы, которые встречаются только один раз;

b.) выводит повторяющиеся элементы (примечание: повторяющийся элемент должен выводиться один раз независимо от того, сколько раз он встречается в массиве).

9.2. Составить программу, которая формирует случайным образом два одномерных массива из N элементов и:

a.) выводит элементы первого массива, которые не встречаются во втором;

b.) выводит элементы, встречающиеся как в первом, так и во втором массивах (примечание: элемент должен выводиться один раз независимо от того, сколько раз он встречается в массивах);

c.) формирует третий массив из элементов, которые встречаются только в одном из массивов.

9.3. Составить программу, которая вводит информацию о сотрудниках (фамилия и стаж работы) и:

a.) выводит список сотрудников, фамилии которых начинаются на заданную букву;

b.) выводит список сотрудников с заданным стажем работы;

c.) выводит список сотрудников, имеющих стаж работы выше среднего;

d.) выводит список сотрудников в алфавитном порядке;

e.) выводит список сотрудников в порядке убывания стажа работы.

9.4. Составить программу, которая формирует случайным образом массив NxN целых чисел и:

a.) выводит его в виде матрицы;

b.) вычисляет сумму элементов каждой строки;

c.) находит максимальные элементы каждого столбца;

d.) вывод элементы под главной диагональю;

e.) упорядочивает по возрастанию каждую строку массива.

9.5. «Студенты». Составить программу, которая вводит следующую информацию о результатах студенческой сессии:

- список студентов,

- список экзаменов,

- оценки студентов за каждый из экзаменов.

Программа должна вывести введенную информацию в виде ведомости. Например:

    Программирование Психология Педагогика Математика
  Иванов        
  Петров        
  Сидоров        

После этого программа должна обработать эту информацию следующим образом:

a.) вывести список студентов, сдавших сессию на повышенные оценки;

b.) вывести список отличников;

c.) вывести список неуспевающих (а также названия предметов, по которым они имеют неудовлетворительные отметки);

d.) вычислить и вывести средний балл каждого студента;

e.) вывести список в порядке убывания среднего балла;

f.) определить предмет, по которому студенты учатся хуже всего, и предмет, по которому студенты учатся лучше всего.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: