Структуры языка программированиия Pascal
Интегрированная среда Паскаль АВС. Настройки среды. Меню системы. Трансляция и запуск программ. Составление программ обработки массивов.
Цель работы:
Ознакомиться с приемами работы в интегрированной среде Паскаля АВС, с разделами меню, режимами настроек меню, с окнами редактирования, справки, отладки.
Порядок выполнения задания
1. Установить на рабочем столе ярлык для вызова среды.
2. Запустить оболочку, ознакомиться с пунктами главного меню.
3. Изучить элементы окон редактирования: полосы прокрутки, строка статуса и др.
4. Освоить вызов справки по пунктам меню, по ключевым словам языка Паскаль. Просмотреть примеры программ в справочной системе, выполнить их.
5. Освоить ввод данных с клавиатуры с помощью оператора READ и вывод информации на экран с помощью оператора WRITE (WRITELN).
6. Написать программу построения массива целых чисел (посредством датчика RANDOM), расположенных в заданном интервале (A, B).
7. Подключить к программе консольный модуль CRT, применить его функции для очистки экрана, для ввода символов с клавиатуры.
8. Написать операторы, переставляющие элементы массива в обратном порядке (за основу программы взять приведенный ниже образец выполнения задания).
9. Модифицировать построенную программу для выделения из полученного массива массивов отрицательных и положительных чисел.
Образец выполнения задания:
Program massiv ;
|
|
Uses CRT;
Const
n=10;
Var
M: array[1..n] of integer;
i, j :integer;
A,B: integer;
begin
clrscr ;{очистка экрана}
randomize ; {установка датчика случайных чисел в исходное состояние со случайным начальным значением}
WRITELN ('задайте через пробел целые числа: границы интервала A , B ');
read ( A , B );
{формируем массив и печатаем в два столбика вместе с номерами }
for i:=1 to n do
begin
WRITE(i:4);
M[i]:=A+RANDOM(B-A);
WRITELN ( M [ i ]:6);
end ;
{Перестановка элементов массива}
{Рассмотреть случаи четного и нечетного n }
for i :=1 to n div 2 do {цикл до середины массива}
begin
j:=M[i];
M[i]:=M[n-i+1]; { понять смысл индексов !!!}
M[n-i+1]:=j;
end;
for i:=1 to n do
WRITELN(i:4,M[i]:8);
readln;
Практическая работа 2
Структуры языка программированиия Pascal
Основные структуры. Одномерные и двумерные массивы. Сортировка.
Цель работы:
Ознакомиться с алгоритмами: сортировки по убыванию и возрастанию (для числовых элементов массива) и аналогичных алгоритмов сортировки в алфавитном порядке (для текстовых данных), с алгоритмами поиска элемента в упорядоченном массиве (метод бинарного поиска), с алгоритмами обработки двумерных массивов.
Порядок выполнения задания
1. На основе учебной программы линейной сортировки массива целых чисел по убыванию построить программы сортировки массива целых чисел по возрастанию, массива строк в алфавитном порядке.
|
|
2. Рассмотреть алгоритм сортировки методом «пузырька». Модифицировать программу для реализации этого метода.
3. Изучить метод быстрой сортировки (метод Хоара) на примере программы Quick_sort (в папке заданий для работы № 2.
4. Написать программу вычисления максимальных по строке элементов двумерного массива, используя для этого в качестве заготовки учебную программу “dim2” и программу линейной сортировки, в которой определены тип данных и функция num_max_elem, вычисляющая в одномерном массиве позицию максимального элемента (номер строки и номер столбца).
Программа линейной сортировки массива по убыванию:
program sortlin;
uses CRT;
const
N=10;
B:array[1..N] of integer=(19,2,60,33,3,6,9,52,23,44);
type
chisla=array [1..n] of integer;
var
a:chisla;
i:integer;
k:integer;
{=============================================}
procedure pseudo(m: integer; a: chisla);{ псевдографика }
{процедура выводит на экран псевдографическое изображение массива чисел в виде строчек из a [ i ] символов как условных величин числа}
var
i,k,j:integer;
begin
for i:=1 to m do
begin
for j:=1 to 2 do
begin
writeln;
for k:=1 to a[i] do
write('W');
end;
writeln(a[i]:3);
end;
readln;
end;
{=============================================}
procedure lin_sort(N:integer;var mass:chisla);
|
|
var
k,j:integer;
numer:integer;
function num_max_elem( num:integer):integer;
var
k:integer;
maxel:integer;
begin
maxel:=mass[num];
for k:=num+1 to N do
if mass[k]>maxel then
begin
maxel:=mass[k];
num:=k;
end;
num_max_elem:=num;
end;
procedure swap(var x,y:integer);
var
z:integer;
begin
z:=x;x:=y;y:=z;
end;
begin
for i:=1 to N-1 do
begin
numer:=num_max_elem(i);
if numer<>i then swap(mass[i],mass[numer]);
pseudo(N,mass);
{readln;}
end;
end;
{============== основная программа =============================}
begin
a:=chisla(B);
pseudo(n,a);
lin_sort(n,a);
{ readln;}
end.
Заготовка программы обработки двумерного массива.
Program dim2;
Uses CRT;
const
N=10;M=12;
type
chisla=array [1..n] of integer;
var
Mass 2: array [1.. M ] of chisla ;{двумерный массив как массив строчек}
Num : chisla ;{массив номеров максимальных по строкам}
{здесь объявить переменные, необходимые для работы программы}
function num_max_elem( num:integer; mass: chisla): integer;
var
k:integer;
maxel:integer;
begin
maxel:=mass[1];
num:=1;
for k:=num+1 to N do
if mass[k]>maxel then
begin
maxel:=mass[k];
num:=k;
end;
num_max_elem:=num;
end;
begin
clrscr;{ очистка экрана }
randomize ; {установка датчика в исходное состояние}
WRITELN ('задайте через пробел целые числа: границы интервала A , B ');
read ( A , B );
{формируем массив и печатаем в виде таблицы по строкам }
for i:=1 to m do
begin
for k:=1 to n do
begin
M[I,k]:=A+RANDOM(B-A);
WRITELN(M[I,k]:6);
end; writeln;
num [ k ]:= num _ max _ elem (1, M [ I ]);{в качестве параметра отдаем строку массива}
|
|
end ;
{полученный массив номеров максимальных элементов по строкам передаем в процедуру и вычисляем номер максимального элемента в нем}
{эти операторы и оператор печати результата: номер строки и номер столбца написать самостоятельно}
end .
Практическая работа 3
Дата добавления: 2018-10-27; просмотров: 300; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!