
- •1 Информатика, информация, данные
- •2Основные операции с данными
- •5 Обобщённая структурная схема компьютера
- •6Непозиционные и позиционные системы счисления
- •8Перевод чисел из двоичной системы счисления в 16-ую и обратно
- •9Программное обеспечение. Основные понятия. Структура
- •10Характеристика системного программного обеспечения
- •19.Понятие алгоритма. Описание алгоритма
- •22Назначение и структура модуля пользователя
- •23 Назначение модуля Crt. Примеры функций и процедур
- •Стандартные функции и процедуры модуля crt
- •20Типы ошибок в программе
- •24Алгоритм поиска элемента в упорядоченном массиве
- •25Суть метода сортировки обменом
- •26. Суть метода сортировки выбором
- •27. Понятие стека. Основные операции над стеком
- •29. Pascal. Структура программы на языке
- •30 Pascal. Простые типы данных
- •31 Примеры записи математических функций, которым нет соответствия на Pascal
- •33. Pascal. Оператор присваивания.
- •34. Pascal. Операторы ввода-вывода.
- •35. Значения логического типа данных.
- •36. Логические выражения. Приоритет и
- •37.Оператор условного перехода if.
- •39. Цикл с предусловием while…do
- •40. Цикл с постусловием repeat…until
- •41. Цикл с параметром for…to…do
- •42. Описание массивов
- •Пример вычислений на основе одномерного массива
- •1 Описание двумерного массива
- •46 Поиск максимального и минимального элементов массива
- •47 Подсчет количества элементов, удовлетворяющих определенным условиям
- •48 Как поменять местами значения двух элементов в массиве
- •49Понятие подпрограммы. Пояснить различие между функцией и процедурой
46 Поиск максимального и минимального элементов массива
Для определения минимального (максимального) элемента массива
1) скалярной переменной минимума (максимума) присваивается значение первого элемента рассматриваемого подмножества элементов массива;
2) в цикле текущее значение переменной сравнивается с каждым элементом массива и переопределяется, если рассматриваемый элемент массива меньше (больше) текущего значения переменной минимума (максимума).
Для одномерного массива А, состоящего из n элементов, минимальный можно найти так:
min:=A[1]; {первый элемент массива назначается минимальным}
for i:=2 to n do
if A[i]<min then min:=A[i]; {текущий минимальный элемент сравнивается с каждым элементом массива и переопределяется при выполнении условия}
writeln('min=',min); {вывод минимального элемента}
Максимальный элемент двумерного массива B, состоящего из n×m элементов, определяется с использованием вложенного цикла:
max:=B[1, 1]; {первый элемент массива назначается максимальным}
for i:=1 to n do
for j:=1 to m do
if B[i, j]>max then max:=B[i, j]; {текущий максимальный элемент сравнивается с каждым элементом массива и переопределяется при выполнении условия}
writeln('max=',max); {вывод максимального элемента}
47 Подсчет количества элементов, удовлетворяющих определенным условиям
Для подсчета количества элементов, имеющих определенные свойства:
1) переменной-счетчику k присваивается начальное значение, равное нулю (k:=0);
2) в цикле используется конструкция вида
if <условие> then k:=k+1;
где
<условие> − условие, налагаемое на элементы массива;
k:=k+1 − увеличение значения переменной-счетчика на единицу. Вместо оператора присваивания можно использовать встроенную функцию inc(k).
Программа, определяющая количество элементов одномерного массива, модуль которых не превосходит числа 3, представлена ниже.
Program count1;
var
A: array[1..10] of integer; {описание одномерного массива из десяти целых чисел}
i, k: integer;
begin
for i:=1 to 10 do readln(A[i]); {ввод десяти элементов
одномерного массива}
k:=0; {начальное значение счетчика}
for i:=1 to 10 do
if abs(A[i])<=3 then k:=k+1; {значение счетчика
увеличивается на единицу при выполнении условия}
writeln('k=',k); {количество элементов, соответствующих условию}
end.
48 Как поменять местами значения двух элементов в массиве
{меняем местами второй и минимальный элементы массива MN:}
prom:=MN[2]; {промежуточной величине присваивается значение второго элемента массива MN}
MN[2]:=MN[k]; {второму элементу массива MN присваивается значение максимального элемента, номер k которого найден выше}
MN[k]:=prom; {элементу под номером k присваивается значение второго элемента, хранящегося в переменной prom}
49Понятие подпрограммы. Пояснить различие между функцией и процедурой
Подпрограмма – это отдельная функционально независимая часть программы. Любая подпрограмма обладает той же структурой, которой обладает и вся программа. Подпрограммы решают три важные задачи: • избавляют от необходимости многократно повторять в тексте программы аналогичные фрагменты; • улучшают структуру программы, облегчая ее понимание; • повышают устойчивость к ошибкам программирования и непредвидимым последствиям при модификациях программы.
В языке Паскаль существует два вида подпрограмм: процедуры и функции, определяемые программистом. Процедурой в Паскале называется именованная последовательность инструкций, реализующая некоторое действие. Функция отличается от процедуры тем, что она должна обязательно выработать значение определенного типа.
50.Pascal. Формат функции пользователя
Формат описания процедуры: Procedure <Имя процедуры> (<Имя форм. параметра 1>:<Тип>; < Имя форм. параметра 2>:<Тип>?); <Раздел описаний> Begin <Тело процедуры> End;
Раздел описаний может иметь такие же подразделы, как и раздел описаний основной программы (описание процедур и функций - в том числе). Однако все описанные здесь объекты "видимы" лишь в этой процедуре. Они здесь локальны также, как и имена формальных параметров. Объекты, описанные ранее в разделе описаний основной программы и не переопределенные в процедуре, называются глобальными для этой подпрограммы и доступны для использования.
Легко заметить схожесть структуры программы целиком и любой из ее процедур. Действительно, ведь и процедура и основная программа реализуют некий алгоритм, просто процедура не дает решения всей задачи. Отличие в заголовке и в знаке после End.
Вызов процедуры представляет в программе самостоятельную инструкцию: <Имя процедуры>(<Фактический параметр 1>, < Фактический параметр 2>?);
Типы фактических параметров должны быть такими же, что и у соответсвующих им формальных.
var x,y,m,n: integer;
procedure MaxNumber(a,b: integer; var max: integer);
begin
if a>b then max:=a else max:=b;
end;
begin
write('Введите x,y ');
readln(x,y);
MaxNumber(x,y,m);
MaxNumber(2,x+y,n);
writeln('m=',m,'n=',n);
end.
51Pascal. Формат процедуры пользователя
Формат описания функции: Function <Имя функции> (<Имя форм. параметра 1>:<Тип>; < Имя форм. параметра 2>:<Тип>?) : <Тип результата>; <Раздел описаний> Begin <Тело функции> End;
В теле функции обязательно должна быть хотя бы команда присвоения такого вида: <Имя функции>:=<Выражение>;
Указанное выражение должно приводить к значению того же типа, что и тип результата функции, описанный выше.
Вызов функции должен входить в выражение. При вычислении значения такого выражения функция будет вызвана, действия, находящиеся в ее теле, будут выполнены, в выражение будет подставлено значение результата функции.
var x,y,m,n: integer;
function MaxNumber(a,b: integer): integer;
var max: integer;
begin
if a>b then max:=a else max:=b;
MaxNumber := max;
end;
begin
write('Введите x,y ');
readln(x,y);
m := MaxNumber(x,y);
n := MaxNumber(2,x+y);
writeln('m=',m,'n=',n);
end.
52Файловые типы данных в Pascal.
Файловый тип данных или файл определяет упорядоченную совокупность произвольного числа однотипных компонент.
Понятие файла достаточно широко. Это может быть обычный файл на диске, коммуникационный порт ЭВМ, устройство печати, клавиатура или другие устройства.
Турбо Паскаль поддерживает три файловых типа:
текстовые файлы;
типизированные файлы;
нетипизированные файлы.
Доступ к файлу в программе происходит с помощью переменных файлового типа. Переменную файлового типа описывают одним из трех способов:
file of тип - типизированный файл (указан тип компоненты); text - текстовый файл; file - нетипизированный файл.
Примеры описания файловых переменных:
var
f1: file of char;
f2: file of integer;
f3: file;
t: text;
53Pascal. Процедуры ввода данных в файл
Для ввода значений переменных с клавиатуры используют две стандартные процедуры ввода: Read и Readln.
Внимание! РАЗЛИЧИЯ READ B READLN ВАЖНЫ ПРИ ЧТЕНИИ ИСХОДНЫХ ДАННЫХ ИЗ ФАЙЛА
При наличии в списке ввода нескольких идентификаторов соответствующие значения после запуска программы следует вводить через пробел(ы) или нажимая после каждого значения клавишу Enter. При этом соответствующей переменной будет присвоено очередное по порядку значение.
54.Pascal. Процедуры вывода данных из файла
Для этой цели используются две стандартные процедуры: Writeln и Write.
Writeln (Список вывода) ; — стандартная процедура, которая используется для вывода данных на экран. Значения выводятся в порядке их записи в списке вывода. Затем курсор переходит в начало следующей строки.
Write (Список вывода) ; — стандартная процедура для вывода данных на экран без перевода курсора на новую строку.