Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕтодичка по практическим работам.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
156.28 Кб
Скачать

Пример выполнения

Ввести массив из 20 чисел, найти среднее арифметическое положительных чисел массива, упорядочить его по возрастанию элементов и вывести упорядоченный массив. Ввод, вывод массива, подсчет среднего арифметического и упорядочение оформить в виде процедур.

program PRIMER;

const N=20;

type Data = array [1..N] of real;

var arM : Data;

{***** VVOD *****}

procedure VVOD( var arA : Data );

{

Действие:

Ввод со стандартного ввода элементов массива.

Параметры:

массив arA.

Возвращает:

массив arA.

Замечания: -

}

var I:integer;

begin

writeln('Ввод массива');

for I:=1 to N do begin

write('Введите A[',I,']');

readln(arA[I])

end

end;{ VVOD }

{***** VIVOD *****}

procedure VIVOD( var arA : Data );

{

Действие:

Вывод на стандартный вывода элементов массива.

Параметры:

массив A.

Возвращает: -

Замечания: -

}

var I:integer;

begin

writeln('Отсортированный массив');

for I:=1 to N do writeln('A[',I,']=', arA[I]);

end;{ VIVOD }

{***** SREDAR *****}

procedure SREDAR( var arA : Data );

{

Действие:

Подсчет и вывод среднего арифметического положительных элементов массива.

Параметры:

массив arA.

Возвращает:

Печать среднего арифметического

Замечания: -

}

var rS:real; I,J :integer;

begin

rS:=0;

J:=0;

for I:=1 to N do

if arA[I]>0 then begin

rS:=rS+arA[I];

J:=J+1

end;

if J=0 then writeln('Положительных чисел нет')

else writeln('Среднее арифметическое=',rS/J)

end;{ SREDAR }

{***** SORT *****}

procedure SORT( var arA : Data );

{

Действие:

Сортировка массива методом простого выбора.

Параметры:

массив arA.

Возвращает:

массив arA.

Замечания: -

}

var I,J,K:integer; rMIN,rR:real;

begin

for I:=1 to N-1 do begin

K :=I;

rMIN:=arA[K];

for J:=I to N do

if A[J]<rMIN then begin

rMIN:=arA[J];

K :=J

end;

rR :=arA[I];

arA[I]:=rMIN;

arA[K]:=rR

end

end;{ SORT }

{*****MAIN *****}

begin

VVOD( arM );

SREDAR( arM );

SORT( arM );

VIVOD( arM )

end.

Варианты заданий

Во всех вариантах заданий обрабатывается таблица розыгрыша лотереи, которая представляет собой тройки чисел вида: серия-номер-сумма выигрыша.

1. Ввести таблицу розыгрыша, упорядочить ее по убыванию серии, вывести упорядоченную таблицу на экран, циклически спрашивать номер серии и для указанной пользователем серии выдавать все имеющиеся в таблице тройки серия - номер - выигрыш. Ввод, вывод, упорядочение таблицы и вывод троек для заданной серии организовать в виде процедур.

2. Ввести таблицу розыгрыша, упорядочить ее по возрастанию совокупности полей выигрыш и серия, вывести упорядоченную таблицу на экран, циклически спрашивать две пары чисел выигрыш - серия и выводить на экран данные о выигрышных билетах, не попавших во введенный пользователем отрезок. Ввод, вывод, упорядочение таблицы и вывод данных о билетах, не попадающих во введенный отрезок оформить в виде процедур.

3. Ввести таблицу розыгрыша, упорядочить ее по возрастанию серии, вывести упорядоченную таблицу на экран, циклически запрашивать серию и номер билета и выдавать сообщение, есть ли выигрыш и какой. Ввод, вывод, упорядочение и поиск по таблице оформить в виде процедур.

4. Ввести таблицу розыгрыша, упорядочить ее по возрастанию выигрыша, вывести упорядоченную таблицу на экран, подсчитать общую сумму выигрыша, приходящуюся на категории выигрыша: 1- 500, 501- 1000, 1001- 5000, 5001 и выше. Ввод, вывод, упорядочение таблицы и подсчет суммы, приходящейся на одну из категорий выигрыша оформить в виде процедур.

5. Ввести таблицу розыгрыша, упорядочить ее по возрастанию номера, вывести упорядоченную таблицу на экран, циклически запрашивать номер билета и выдавать серию и выигрыш, если номер совпадает, или ближайшие серию-номер-выигрыш, имеющиеся в таблице, если номер не совпадает. Ввод, вывод, упорядочение и поиск по таблице оформить в виде процедур.

6. Ввести таблицу розыгрыша, упорядочить ее по убыванию совокупности полей выигрыш, серия, номер, вывести упорядоченную таблицу на экран, циклически опрашивать две тройки чисел выигрыш-серия-номер и выводить данные о выигрышных билетах, не попадающих во введенный отрезок. Ввод, вывод, упорядочение таблицы и вывод данных о билетах, не попадающих в отрезок оформить в виде процедур.

7. Ввести таблицу розыгрыша, упорядочить ее по убыванию совокупности полей выигрыш и номер, вывести упорядоченную таблицу на экран, циклически запрашивать две пары чисел выигрыш - номер и выводить данные о выигрышных билетах, не попадающих во введенный отрезок. Ввод, вывод, упорядочение таблицы и вывод данных о билетах, не попадающих в отрезок, оформить в виде процедур.

8. Ввести таблицу розыгрыша, упорядочить ее по возрастанию выигрыша, вывести упорядоченную таблицу на экран, циклически запрашивать сумму выигрыша и выдавать все пары серия - номер, на которые такой выигрыш выпал. Ввод, вывод, упорядочение таблицы и вывод серий и номеров билетов, на которые выпал выигрыш, оформить в виде процедур.

9. Ввести таблицу розыгрыша, упорядочить ее по возрастанию совокупности полей серия и выигрыш, вывести упорядоченную таблицу на экран, циклически запрашивать 2 значения выигрыша и выдавать данные о выигрышных билетах, попадающих во введенный отрезок. Ввод, вывод, упорядочение таблицы и вывод данных о билетах попадающих в указанный отрезок, оформить в виде процедур.

10. Ввести таблицу розыгрыша, упорядочить ее по возрастанию комбинации полей серия и номер, вывести упорядоченную таблицу на экран, циклически запрашивать два значения серии и выводить данные о выигрышных билетах, попадающих в отрезок введенных серий. Ввод, вывод, упорядочение таблицы и вывод данных о билетах, попадающих в указанный отрезок, оформить в виде процедур.

11. Ввести таблицу розыгрыша, упорядочить ее по возрастанию серии, вывести упорядоченную таблицу на экран, подсчитать выигрыш, приходящийся на следующие отрезки серий: 0-1000, 1000-10000, 10000-30000. Ввод, вывод, упорядочение таблицы и подсчет выигрыша, приходящегося на один диапазон серий оформить в виде процедур.