
- •С Кафедра моп эвм истема программирования Borland Pascal Методическая разработка к лабораторным работам фавт
- •Интерфейс системы
- •Меню и команды
- •Пункт File
- •Пункт Edit
- •Пункт Search
- •Пункт Run
- •Пункт Compile
- •Пункт Debug
- •Пункт Options
- •Пункт Window
- •Пункт Help
- •Страница Compiler Options окна свойств проекта
- •??? Страница Directories окна свойств проекта
- •??? Страница Preferences окна свойств проекта
- •Файлы проекта
- •Основные приемы работы в системе Паскаль Создание новой программы
- •Работа с уже созданной программой
- •Использование средств отладки
- •Пошаговое выполнение программы
- •Просмотр значений переменных
- •Использование точек останова
- •Порядок выполнения работы
- •If f then writeln('существует');
- •Var описание_переменных;
- •If условие then оператор1 else оператор2
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Оператор цикла с убывающим параметром
- •Контрольные вопросы
- •Var список_имен_массивов: array [тип_индекса1,тип_индекса2...] of базовый_тип;
- •Варианты заданий
- •Контрольные вопросы
- •Var список_имен_переменных:string[максимальная_длина_строки];
- •Var список_имен_переменных:string;
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 6. Использование процедур Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 7. Использование функций Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 8. Работа с текстовыми файлами Основные сведения
- •Var имя_файловой_переменной : text;
- •Пример выполнения
- •I : integer; {счетчик символов текущей строки выходного файла}
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 9. Работа с типизированными файлами и записями Основные сведения
- •Var имя_файловой_переменной : file of тип_записи_файла;
- •Var имя_переменной_записи:имя_типа_записи;
- •Пример выполнения
- •ICurs: integer {курс }
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 10. Использование данных ссылочного типа Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 11. Создание и использование модулей Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Литература
- •Содержание
Пример выполнения
Ввести массив из 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. Ввод, вывод, упорядочение таблицы и подсчет выигрыша, приходящегося на один диапазон серий оформить в виде процедур.