Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Домашнее задание.doc
Скачиваний:
4
Добавлен:
30.04.2022
Размер:
218.11 Кб
Скачать

2) Оператор с постусловием Repeat.

Repeat

Тело цикла

Until (Условие);

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

Пример. Дано 100 вещественных чисел, вводимых с клавиатуры. Найти разность между максимальным и минимальным из них.

14

Program Primer;

Var x,min,max : real;

j : integer;

Begin

WriteLn('Вводите числа!');

ReadLn(x); min:=x; max:=x;

j:=1;

Repeat

ReadLn(x);

If x<min then min:=x;

If x>max then max:=x;

j:=j+1;

Until (j>=100)

WriteLn('Искомая разность равна ',max-min:9:3);

End.

3) Оператор цикла с параметром применяется для организации циклов с известным количеством повторением и относится к циклам с предусловием. Формат оператора следующий:

For Переменная Цикла:=Начальное Значение to Конечное Значение do Оператор;

Переменная цикла — переменная одного из порядковых типов — пересчитывает количество повторений цикла, заданное с помощью начального и конечного значений. Количество повторений на единицу больше разности между конечным и начальным значениями. Оператор представляет собой тело цикла. Поскольку оператор for берёт на себя пересчёт количества повторений, то внутри тела цикла нельзя изменять переменную цикла. Её можно лишь использовать.

Пример. Дано 100 вещественных чисел, вводимых с клавиатуры. Найти разность между максимальным и минимальным из них.

Program Primer;

Var x,min,max : real;

15

j : integer;

Begin

WriteLn('Вводите числа!');

ReadLn(x); min:=x; max:=x;

For j:=2 to 100 do

begin

ReadLn(x);

If x<min then min:=x;

If x>max then max:=x;

end;

WriteLn('Искомая разность равна ',max-min:9:3);

End.

Некоторые «горячие» клавиши среды Turbo Pascal.

Создать новое окно — File New;

Переключение между окнами — Alt+Номер Окна;

Закрытие текщего окна — Alt+F3;

Сохраннение программы — F2 или File Save или File Save As;

Открытие файла — F3 или File Open;

Компиляция без выполнения — Alt+F9 или Compile;

Понятия подпрограмм. Процедуры и функции.

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

16

месте программы, однако их можно вызвать для выполнения из одной или нескольких точек программы. Каждая подпрограмма определяется уникальным именем.

Алгоритм решения задачи проектируется путем декомпозиции всей задачи в отдельные подзадачи. Обычно подзадачи реализуются в виде подпрограмм.

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

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

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

  1. Домашние задания и методические указания по их выполнению.

Задание первое.

Изучить условные операторы (арифметический и логический).

17

Ознакомиться со способами задания типа переменной. Уяснить, что

такое простая и индексная переменная. Проработать теоретический

материал по организации цикла с помощью условного оператора и с

помощью оператора цикла DO.

Задание второе.

Разработать схемы и составить программы при использовании

арифметического цикла с простой переменной вычисления ниже-

следующей функции:

у = Ах^3+ Bcosx + C, где х изменяется от х=5 до х=100 с шагом H=1

Все результаты печатать и запоминать в массив. Найти произведения

положительных и отрицательных результатов.

Задание третье.

Разработать схемы и составить программы при использовании

арифметического цикла с индексной переменной вычисления ниже-

следующих функций:

а) у = 0,85*10^-4*АL^х – b*tg(сх)

аргумент ф-и задан в виде таблицы Х=Х1, X2,… X10.

б) Дан массив вещественных чисел Х1, Х2,… Х100. Переписать массив

в обратном порядке, просуммировать чётные и нечётные элементы

массива, исключить из массива максимальный

18

элемент, оставшиеся члены уплотнить.

На многих алгоритмических языках для организации циклических программ применяются специальные операторы цикла, позволяющие упростить написание таких программ. Однако следует усилить обобщённую схему циклического процесса, приемлемую для любого языка программирования, которая включает в себя: блок подготовки к первому выполнению тела цикла, тело цикла (многократно повторяющаяся часть вычислительного процесса), подготовка к очередному выполнению тела цикла и блок проверки окончания цикла (управление циклом). Если в цикле изменяется простая переменная, то параметром цикла является эта переменная. Для переменной с индексом параметром, изменяющемся в цикле, является индекс этой переменной.

В зависимости от способа хранения различают простые переменные и переменные с индексами.

ПРОСТАЯ переменная в каждый момент времени имеет одно значение, которое хранится в одной ячейке. Другие значения этой переменной ЭВМ определяет и хранит по очереди в той же ячейке. Простая переменная обозначается с помощью идентификатора.

ПЕРЕМЕННАЯ С ИНДЕКСОМ является элементом массива. Для хранения каждого элемента массива отводится отдельная ячейка памяти. Переменная с индексом обозначается идентификатором массива, за которым в круглых скобках через запятую записываются от одного до семи индексов. Индекс указывает номер элемента в массиве и может представляться числом, переменной или арифметическим выражением. Индекс может принимать только целые положительные положения, большие или равные 1.

Арифметические циклы с простой переменной организуются с помощью условного оператора.

19

  1. Лабораторные задания и методические указания по их применению.

1.Даны 4 вектора- 4 одномерных массива:

А= 2.5; -0.3; 5.6; 9.4; -8;

B= 0.1; 7.25; 1.12; -4.7; -3.14;

C= -1.1; 2.87; -5.5; -3.3; 6; 7.25; -0.15; 9.1; 8; 4.5;

D= 9.15; -1.8; 6.33; -7.7; 5.1; -0.5; -2.75; 4.8; 2.2; 9.9/

Сформировать новый массив из сумм элементов массивов А, B, C, D

и найти у него сумму элементов.

2. Сформировать новый массив из произведений элементов массивов A, B, C, D задания № 1 и найти у него произведения элементов.

3. Сформировать новый массив из минимальных значений элементов массивов задания № 1 и найти у него минимальный элемент.

4. Сформировать новый массив из максимальных значений элементов массивов задания № 1 и найти у него максимальный элемент.

5. Сформировать новый массив из средних арифметических отрицательных элементов задания № 1 и найти для него среднее арифметическое.

6. Сформировать новый массив из средних геометрических положительных элементов массивов задания № 1 и найти для него среднее геометрическое.

7. Определить для каждого из массивов задания № 1 количество элементов, попадающих в интеграл [-5, 5]. Из полученных количеств организовать новый массив и найти сумму его элементов.

8. Определить количество отрицательных и положительных элементов в

20

каждом из массивов задания № 1. Сформировать 2 новых массива из этих количеств соответственно для отрицательных и положительных элементов и найти суммы их элементов.

9. Найти длину каждого вектора задания № 1 по формуле:

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

10. Вычислить скалярные произведения A*b; C*D векторов задания № 1. Найти наименьшее из них и увеличить на эту величину все элементы указанных векторов.

11. Упорядочить элементы массивов задания № 1 в порядке возрастания. Из второго и предпоследнего элементов каждого упорядоченного массива сформировать новый массив и найти сумму его элементов.

12. Упорядочить элементы массивов задания № 1 в порядке убывания. Из всех первых и последних элементов с чётными номерами сформировать новый массив и найти произведение его элементов.

13. Вычислить суммы А+B; C+D векторов задания № 1. Для каждого нового вектора определить количество отрицательных элементов.

14. Вычислить разности векторов A-B; C-D векторов задания № 1. Для каждого нового вектора определить сумму положительных элементов.

15.Вычислить суммы А+B; C+D векторов задания № 1. Для каждого нового вектора вычислить длину по формуле .

16. Даны 3 матрицы ( двумерные массивы):

21

Cформировать одномерный массив из сумм элементов массивов A, B, C и вычислить у него сумму элементов.

17. Вычислить следы матриц (суммы элементов главной диагонали) задания № 16 и сформировать из них массив, упорядочив элементы в порядке возрастания.

18. Сформировать массив из максимальных значений элементов массивов задания № 16 и найти у него максимальный элемент.

19. Выполнить транспонирование матриц (замену строк на столбцы) задания № 16 и определить, какие из матриц являются симметрическими (т. е. выявить матрицы, которые после транспонирования остаются равными исходной).

20. Вычислить, напечатать и запомнить в массив значения функции У= Р1+ Р2*Х+ Р3*Х^2. для всех Х на интервале [1, 2] с шагом O, I, где Р1, Р2, Р3-произведения положительных элементов массивов A, B, C задания № 16.

21. Вычислить, напечатать и запомнить в массив значения функции У= А1*Сos(B1*T +CI) для всех Т на интервале [0, П] с шагом 0.1П, где АI, BI, CI- минимальные значения элементов массивов A, B, C задания № 16.

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

23. Сформировать одномерный массив из значений средних арифметических отрицательных и положительных элементов массивов задания № 16 и вычислить для него среднее арифметическое.

24. Определить количество отрицательных и положительных элементов в каждом из массивов задания № 16 и сформировать из найденных значений новый массив,

22

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

25. Упорядочить элементы каждой строки массивов задания № 16 в порядке возрастания и напечатать элементы главных диагоналей.

30. Упорядочить элементы каждого столбца массивов задания № 16 в порядке убывания и напечатать элементы главных диагоналей.

КОНТРОЛЬНЫЕ ВОПРОСЫ

  1. Для каких целей используются подпрограммы-функции?

  2. Чем структурно отличается подпрограмма-функция от основной программы?

  3. Какие составные элементы обязательны для заголовка функции?

  4. Что можно сказать о соответствии формальных и фактических параметров?

  5. Назвать 2 способа вызова фактических параметров в подпрограмму?

  6. Что можно использовать в качестве формальных параметров в заголовке процедуры SUBROUTINE?

  7. В чём отличие процедуры общего вида от подпрограммы-функции?

ЛАБОРАТОРНАЯ РАБОТА 4

Процедуры и функции

Цель: Изучить понятия формальной и фактической переменной, организацию процедур и функций в языке программирования Паскаль.

23

  1. Краткие теоретические сведения

Понятия подпрограмм. Процедуры и функции.

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

Алгоритм решения задачи проектируется путем декомпозиции всей задачи в отдельные подзадачи. Обычно подзадачи реализуются в виде подпрограмм.

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

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

24

обстановки.

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

Описание и вызов процедур.

Описание процедуры производится в разделе описаний основной программы. Любая процедура оформляется аналогично программе, может содержать заголовок, разделы описаний и операторов. Синтаксис заголовка процедуры:

Procedure <Name>(<Список формальных параметров>);

… {Раздел описаний}

Begin

…{Раздел операторов процедуры}

End;

где Procedure - служебное слово; Name - произвольный идентификатор, определяющий имя процедуры.

Procedure MyProc (A,B,C: Real; var X1,X2: Real);

Begin

WriteLn('A=',A, ' B=', B, 'C=', C);

X1:=A+B;

X2:=A*B-C

End;

Разделы описаний процедуры подобно основной программе могут содержать разделы описания меток (Label), констант (Const), типов (Type), переменных (Var) и раздел процедур и функций. Раздел операторов помещается после служебного слова Begin и заканчивается служебным словом

25

End, после End становится " ; ". В основной программе процедуры располагают перед разделом операторов (телом программы) основной программы.

Формальные параметры - это переменные, посредством которых передаются данные из места вызова процедуры в её тело, либо из процедуры в места вызова.

Список формальных параметров может отсутствовать, при этом символ " ; " ставится сразу за именем процедуры и данные из места вызова процедуры в её тело не передаются.

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

Name(<Список фактических параметров>);

MyProc(K, L+M, 12, Y1, Y2);

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

Фактические параметры - это переменные (или значения заданные явно), которые передаются в процедуры на место формальных параметров. Если в вызываемой процедуре отсутствует список формальных параметров, то список фактических параметров тоже отсутствует.

Количество фактических параметров должно соответствовать количеству формальных параметров; соответствующие фактические и формальные параметры должны совпадать по порядку записи и по типу данных.

Описание и вызов функций.

Оформляется функция аналогично процедуре. Отличительной особенностью функции является то, что она

26

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

Function <Name>(<Список формальных параметров>):<Type>;

… {Раздел описаний}

Begin

…{Раздел операторов процедуры}

Name:=<выражение соответствующего типа>;

… End;

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

Таким образом, алгоритм можно оформить в виде функции в том случае, если в качестве результата получается одно единственное значение. Для вызова функции достаточно указать ее имя (с фактическими параметрами) в любом выражении, где тип результата функции будет приемлем. Имя функции можно использовать в арифметических выражениях и других командах.

Пример: Разработать функцию, определяющую по двум катетам гипотенузу прямоугольного треугольника.

Function Gepoten(a,b:real):real;

Begin

Gepoten:=Sqrt(Sqr(a)+Sqr(b))

End;

Вызов функции из основной программы может выглядеть

27

следующим образом:

z:=Gepoten(x, y); {z присваивается значение гипотенузы}

или

WriteLn('Значение гипотенузы', Gepoten(x, y));

Текстовые файлы.

Кроме описанных выше файлов в Turbo Pascal 7.0 применяется специальный вид файлов предназначенный в основном для работы с текстовой информацией. Этот тип файлов объявляется с помощью служебного слова text, например

Var

t: text;

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

Процедуры и функции для работы с текстовыми файлами

Append(var F: Text);

Открывает существующий текстовый файл для добавления в конец информации.

Readln(var F: Text; V1, [V2, V3,... Vn]);

Читает информацию из текстового файла. V1, V2,... Vn - переменные целого, вещественного или строкового типа в которые помещается прочитанная информация.

Writeln(var F: Text; V1, [V2, V3,... Vn]);

Записывает информацию в текстовый файл и вводит в файл признак конца строки. V1, V2,... Vn - переменные целого, вещественного или строкового типа, содержащие информацию помещаемую в файл.

Процедуры Readln и Writeln осуществляют те же

28

действия, что и процедуры Write и Readln, но после операций чтения и записи производят переход к следующей строке текстового файла. Процедура Read переходит к следующей строке только в случае исчерпания текущей строки. Процеду- ра Readln позволяет совершить этот переход не дожидаясь конца строки.

Eoln(var F: Text);

Функция определения конца строки. Возвращает значение true, если текущий укаатель находится за последней компонентой строки, false в противном случае.

SeekEoln(var F: Text): bolean;

Производит поиск конца текущей строки файла. Перемещает указатель к следующему значению в строке. Если достигнут конец строки возвращается true.

SeekEof(var F: Text): boolean;

Производит поиск конца файла. Перемещает указатель к следующему значению. Если достигнут конец файла возвращается true.

Работа со строками.

Символьные массивы.

Наиболее простым способом для работы с текстом является применение символьных переменных и линейных массивов, содержащих данные символьного типа (char).

VAR

ms: array[1..80] of CHAR;

В этом случае необходимо использовать все правила, приёмы и методы обработки массивов. Но как показывает практика, такой подход не совсем удобен. Поэтому для работы с текстом в языке Turbo Pascal был введён специальный тип данных, предназначенный для работы с фрагментами текста - строками (цепочками символов).

  1. Лабораторные задания

29

Вариант № 1.

Исходный массив Х вещественного типа:

Элементы массива У вычислить по формулам:

У1= Х1, Уn= Хn, Уk=(Хk-1+ Xk+ Xk-1)/3,

K= 2, 3, …, n-1;

Элементы массива Х циклически сдвинуть на 2 позиции вправо;

Вариант № 2.

Исходный массив целого типа:

  1. Элементы массива Х сдвинуть циклически влево на 3 позиции;

  2. Упорядочить элементы массива Х по убыванию.

Вариант № 3.

Исходный массив Х целого типа:

1) Заменить каждый чётный элемент массива Х на соседний справа элемент;

2) Сдвинуть элементы массива Х на P позиций влево (Р- целое число, задаётся при

вводе), заменяя освободившиеся позиции цифрами 1, 2, 3….

Вариант № 4.

Исходный массив Х вещественного типа:

  1. Элементы массива сдвинуть вправо на К позиций (К- целое число, задаётся при вводе), заменяя освободившиеся позиции нулями.

  2. Элементы массива Х упорядочить по убыванию, начиная с К-го элемента.

Вариант № 5.

Исходный массив Х символьного типа:

  1. Найти количество типов ‘x’, ‘_’ и ‘/’ в массиве Х;

  2. Заменить в Х все символы, не являющиеся буквами или цифрами, не пробелы.

Вариант № 6.

Исходный массив Х целого типа:

30

  1. Элементы массива Х сдвинуть на m позиций вправо циклически;

  2. Упорядочить по убыванию элементы массива Х от 4-го до m-го элемента

Вариант № 7.

Исходный массив Х вещественного типа:

1)Заменить все элементы массива Х, не имеющие дробные части нулями;

2)Упорядочить элементы массива Х по возрастанию.

Вариант № 8.

Исходный массив Х целого типа:

1)Заменить каждый элемент в массиве Х на сумму стоящих после него элементов;

2)Сдвинуть элементы массива Х на 5 позиций влево циклически.

Вариант № 9.

Исходный массив целого типа:

1) Заменить каждый элемент в массиве Х на произведение предшествующих ему

элементов.

2)Заменить все кратные 3м элементы в массиве Х нулями;

Вариант № 10.

Исходный массив вещественного типа:

  1. Упорядочить элементы от i-o до j-o в массиве Х по убыванию.

  2. Записать в массив У сначала все элементы с чётными, а затем с нечётными индексами.

Вариант № 11.

Исходный массив символьного типа:

  1. Найти количество символов ‘*’, и ‘_’ в массиве Х;

  2. Заменить все ‘*’ на ‘_’ и все ‘_’ на ‘*’ в массиве Х.

Вариант № 12.

31

Исходный массив целого типа:

  1. Поменять местами первый элемент массива Х с наибольшим его элементом;

  2. Сдвинуть элементы массива Х на К позиций влево циклически

Вариант № 13.

Исходный массив Х символьного типа:

  1. В массив У записать все символы, которые встречаются в массиве Х, причём

каждый символ должен входить в массив У не более чем 1раз.

  1. Найти количество каждого из символов в массиве Х.

Вариант № 14.

Исходный массив Х целого типа:

  1. Поменять местами в массиве Х наибольший элемент с элементом, индекс которого

равен наибольшему элементу.

  1. Сдвинуть элементы массива Х на К позиций вправо, при этом левые свободные

позиции после сдвига заполнить нулями.

Вариант № 15.

Исходный массив Х символьного типа:

  1. Все символы, не являющиеся буквами, заменить символом ‘*’ в массиве Х;

  2. Сдвинуть элементы массива Х влево на m позиций, при этом освободившиеся

позиции заменить на ‘*’.

Вариант № 16.

Исходный массив целого типа:

  1. Найти наибольший элемент в массиве Х и, если он отличен от 0,

то поменять его местами с элементом массива Х, индекс которого = минимальному элементу в массиве Х;

  1. Сдвинуть элементы массива Х циклически на IO

32

позиций влево.

Вариант №17.

Исходный массив Х символьного типа:

  1. Сдвинуть элементы массива Х вправо на К позиций;

  2. Заменить все нечётные цифры в массиве Х нулями.

Вариант № 18.

Исходный массив вещественного типа:

  1. Заменить все элементы массива Х на их целые части;

  2. Заменить каждый элемент в массиве Х на сумму предшествующих ему элементов.

Вариант № 19.

Исходный массив символьного типа:

  1. Записать в массив У все буквы из массива Х в том порядке, в каком они встречаются в массиве Х;

  2. Сдвинуть элементы массива Х на S позиций вправо, освободившиеся позиции заменить ‘_’.

Вариант № 20.

Исходный массив Х вещественного типа:

  1. Наибольший и наименьший элементы в массиве Х;

  2. Упорядочить по убыванию элементы, стоящие между min и max элементами в массиве Х.

Вариант № 21.

Исходный массив Х целого типа:

  1. Заменить каждый элемент в массиве Х нВ его факториал;

  2. Упорядочить первую половину массива Х по возрастанию.

Вариант № 22.

Исходный массив Х символьного типа:

  1. Найти количество слов в массиве Х ;

  2. Зашифровать исходный текст, заменяя каждую букву от А до Z числом от 1го до 27и.

Вариант № 23.

Исходный массив Х вещественного типа:

33

  1. Найти количество различных чисел в массиве Х;

  2. Упорядочить по возрастанию элементы в массиве Х, стоящие справа от первого нулевого элемента.

Вариант № 24.

Исходный массив Х символьного типа:

  1. Зашифровать его, заменяя каждую цифру от 0 до 9 на буквы от А до J;

  2. Заменить все цифры от -1 до -9 на буквы от К до S.

Вариант № 25.

Исходный массив Х целого типа:

  1. Заменить каждый элемент в массиве Х на его факториал;

  2. Вычислить для каждого элемента в массиве Х сумму следующих за ним элементов.

Вариант № 26.

Исходный массив Х символьного типа:

  1. Записать элементы массива Х в массив У в обратном порядке;

  2. Записать в начало массива Х все содержащиеся в нём цифры в порядке возрастания, оставшиеся символы без изменения порядка их следования в массиве Х записать в конец массива.

Вариант № 27.

Исходный массив Х целого типа:

  1. Найти количество различных цифр в массиве Х;

  2. Записать в начало массива Х все отрицательные элементы, а за ними- все положительные, не меняя порядка их следования в массиве Х.

Вариант № 28.

Исходный массив вещественного типа:

  1. Упорядочить по возрастанию элементы массива Х, начиная с середины массива;

  2. Поменять местами наибольший и наименьший элементы в массиве Х.

34

КОНТРОЛЬНЫЕ ВОПРОСЫ

  1. Какие правила работы с массивами данных есть в языке паскаль?

  2. В чём отличие условного оператора от оператора выбора?

  3. Как составить описание процедуры?

  4. Как обратиться к процедуре?

  5. Как составить описание функции?

  6. Как осуществить обращение к функции?

  7. Что называют локальными и глобальными переменными?

  8. Как осуществляется обмен данными между программой и подпрограммой в Паскале?