Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы теория Паскаль билеты 1 -10.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
1.72 Mб
Скачать

Способы инициализации (заполнения массива)

Язык Паскаль не имеет специальных средств ввода-вывода всего массива, поэтому данную операцию следует организовывать поэлементно с помощью циклов.

Ввод значений с клавиатуры

Ввод значений случайным образом

For i:=1 to 5 do

begin

Writeln(‘Введите значение ‘,i,’ элемента’);

Readln(a[i]);

end;

Чтобы инициализировать генератор случайных чисел, в начале программы необходимо вызвать процедуру Randomize.  Функция random возвращает случайное число типа Real в диапазоне 0 <= X < 1. 

Тип данных: вещественный

0<=a[i]<1, a[i]:=RANDOM;

0<=a[i]<A, a[i]:=RANDOM *A;

A<=a[i]<B, a[i]:=A + RANDOM*(B - A);

Тип данных: целый

0<=a[i]<=A, a[i]:= RANDOM (A+1);

A<=a[i]<=B, a[i]:=A + RANDOM(B – A+1);

For i:=1 to 5 do

a[i]:= -4 + RANDOM(10);

Значения элементов массива целые числа из промежутка от -4 до 5: a[i]:=-4+ RANDOM(5 –(-4)+1)

Ввод значений по формуле

ai=sin i-cos i

For i:=1 to 5 do

a[i]:=sin(i) – cos(i);

г) осуществление ввода-вывода массива.

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

For i:=1 to 5 do

Write(a[i]:5);

Writeln;

Инициализация и вывод элементов массива

For i:=1 to 5 do

begin

a[i]:= -4 + RANDOM(10);

Write(a[i]:5);

end;

2. Составить блок-схему алгоритма, реализующего контроль ввода

БИЛЕТ 13

1. Двумерный массив.

а) определение;

Массив А

j от 1 до m

Столбец 1

Столбец 2

Столбец 3

i от 1 до n

Строка 1

А[1,1]

А[1,2]

А[1,3]

Строка 2

А[2,1]

А[2,2]

А[2,3]

Строка 3

А[3,1]

А[3,2]

А[3,3]

Строка 4

А[4,1]

А[4,2]

А[4,3]

Двумерный массив - это одномерный массив, элементами которого являются одномерные массивы. Другими словами, это набор однотипных данных, имеющий общее имя, доступ к элементам которого осуществляется по двум индексам. Наглядно двумерный массив удобно представлять в виде таблицы, в которой n строк и m столбцов, а под ячейкой таблицы, стоящей в i-й строке и j-м столбце понимают некоторый элемент массива A[i, j]. В приведенном примере строк – n=4, столбцов – m=3. Параметр i будет принимать значения от 1 до n=4, параметр j – от 1 до m=3.

в) описание в Паскале;

Const

strok=4;

stolb=3;

Var

Имя_массива: array [1..strok, 1..stolb] of integer;

б) способы инициализации: с клавиатуры, случайным образом, по формуле.

С клавиатуры

For i:=1 to strok do внешний цикл, индексы строки

For j:=1 to stolb do внутренний цикл, индексы столбцов текущей строки

ввод элементов массива построчно

Случайным образом

Чтобы инициализировать генератор случайных чисел, в начале программы необходимо вызвать процедуру Randomize.  Функция random возвращает случайное число типа Real в диапазоне 0 <= X < 1. 

Тип данных: вещественный

0<=a[i]<1, a[i]:=RANDOM;

0<=a[i]<A, a[i]:=RANDOM *A;

A<=a[i]<B, a[i]:=A + RANDOM*(B - A);

Тип данных: целый

0<=a[i]<=A, a[i]:= RANDOM (A+1);

A<=a[i]<=B, a[i]:=A + RANDOM(B – A+1);

For i:=1 to strok do внешний цикл, индексы строки

For j:=1 to stolb do внутренний цикл, индексы столбцов текущей строки

mas[i, j]:=Random(10); заполнение массива построчно

По формуле

For i:=1 to strok do внешний цикл, индексы строки

For j:=1 to stolb do внутренний цикл, индексы столбцов текущей строки

mas[i, j]:=i+j; заполнение массива построчно

г) осуществление ввода-вывода.

Организация вывода в виде таблицы.

for i:=1 to strok do внешний цикл, индексы строки

begin

for j:=1 to stolb do внутренний цикл, индексы столбцов текущей строки

вывод строки

write(а[i,j]:5);

writeln; переход на новую строку

end;

for i:=1 to strok do begin внешний цикл, индексы строки

for j:=1 to stolb do внутренний цикл, индексы столбцов текущей строки

begin

заполнение и вывод текущей строки

mas[i, j]:=Random(10)

write(а[i,j]:5);

end;

writeln; переход на новую строку

end;

2. Составить блок-схему алгоритма подсчета количества положительных из N заданных чисел.

БИЛЕТ 14

1. Сортировка элементов линейного массива.

а) определение сортировки одномерного массива;

Под сортировкой числового массива понимается процесс перестановки его элементов в порядке возрастания или убывания их значений.

в) виды сортировок;

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

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

б) блок-схема сортировки массива;

Инициализация массива

i – последовательно просматриваем весь массив от 1 до М-1 элемента,

n –первый элемент неотсортированной части массива

j – остальные элементы неотсортированной части массива

k – вспомогательная переменная для обмена значениями наименьшего элемента с первым элементом неотсортированной части массива

М – количество элементов в массиве

Вывод отсортированного массива

2. Cоставить блок-схему алгоритма, подсчитывающего количество слов в предложении.

БИЛЕТ 15

1.Оператор выбора варианта.

Если оператор If обеспечивает выбор из двух альтернатив, то существует оператор, который позволяет сделать выбор из произвольного числа вариантов. Это оператор выбора Case. Он организует переход на один из нескольких вариантов действий в зависимости от значения выражения, называемого селектором.

а) блок-схема;

Полная форма

Краткая форма

б) запись на Паскале;

C ase k of

< const1>: <оператор1>;

<const2>: <оператор2>;

<constN>: <операторN>

else <операторN+1>

end;

Здесь k — выражение-селектор, которое может иметь только простой порядковый тип (целый, символьный, логический). <const1>, …<constN> - константы того же типа, что и селектор.

б) запись на Паскале;

C ase k of

< const1>: <оператор1>;

<const2>: <оператор2>;

<constN>: <операторN>;

end;

Здесь k — выражение-селектор, которое может иметь только простой порядковый тип (целый, символьный, логический). <const1>, …<constN> - константы того же типа, что и селектор.

в) правила использования.

Оператор Case работает следующим образом. Сначала вычисляется значение выражения-селектора, затем обеспечивается реализация того оператора, константа выбора которого равна текущему значению селектора. Если ни одна из констант не равна значению селектора, то выполняется оператор, стоящий за словом else. Если же это константа выбора отсутствует, то активизируется оператор, находящийся за границей Case, т.е. после слова end.

При использовании оператора Case должны выполняться следующие правила:

1.Выражение-селектор может иметь только простой порядковый тип (целый, символьный, логический).

2.Все константы, которые предшествуют операторам, должны иметь тот же тип, что и селектор.

3.Все константы должны быть уникальны в пределах оператора выбора.

Пример. Программа, которая по номеру дня недели (1– понедельник, 2– вторник и т.д.) определяет рабочий это день или выходной.

Дано: Х - натуральное число.

Найти: является ли это число Х номером дня недели и, если является, выяснить рабочий это день или выходной.

Решение:

Если данное число равно 1, 2, 3, 4 или 5, то день недели рабочий, если 6 или 7, то выходной. В противном случае мы должны вывести сообщение, что дня недели с таким номером нет.

Программа:

Program work;

Var X: Byte;

Begin

Write(’Введите номер дня недели: ’);

Readln(X);

Case X of

1 .. 5 : Writeln(’Это рабочий день ’);

6, 7 : Writeln(’Это выходной! ’);

Else Writeln(’Нет такого дня недели ’)

End.

2. Составить блок-схему алгоритма нахождения n!.

БИЛЕТ 16

Строковый тип данных. Процедуры и функции, предназначенные для обработки строк.

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

  • Общая длина строки, которая характеризует размер памяти, выделяемый строке при описании;

  • Текущая длина строки (всегда меньше или равна общей длине), которая показывает количество смысловых символов строки в каждый конкретный момент времени.

Длина строки в Паскале может лежать в диапазоне от 0 до 255. Каждый символ строковой величины занимает 1 байт памяти и имеет числовой код в соответствии с таблицей кодов ASCII.

Код ASCII (American Code for Information Interchange – Американский стандартный код для обмена информацией) имеет основной стандарт и его расширение. Основной стандарт использует шестнадцатеричные коды 00-7F, расширение стандарта – 80-FF. Основной стандарт является международным и используется для кодирования управляющих символов, цифр и букв латинского алфавита; в расширении стандарта используются символы псевдографики и буквы национальных алфавитов.

Строковая константа Паскаля – последовательность символов, заключенная в апострофы. Например, ‘строковая константа’, ‘243’. Два следующих друг за другом апострофа (‘’) обозначают пустую строку, т.е. строку с нулевой длиной.

Например, const s=’строковая константа’;