Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум ОА и П.doc
Скачиваний:
23
Добавлен:
29.08.2019
Размер:
13.34 Mб
Скачать

Задания для самостоятельного решения. Напишите программы с использованием процедур.

  1. Составьте программу заполнения и вывода на экран таблицы умножения.

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

  3. Дана последовательность слов. Напечатайте все слова, предварительно преобразовав каждое из них по следующему правилу:

    • Удалить из слова все вхождения последней буквы (кроме нее самой);

    • Оставить в слове только первые вхождения каждой буквы.

  4. Составьте процедуру, выводящую на бумагу таблицу из двух столбцов, один из которых называется Номер п/п, а название второго задается некоторой строковой переменной. В первом столбце должны напечататься порядковые номера, а во втором – значения элементов числового массива. Использовать эту процедуру в программе, организующей ввод данных о фактическом товарообороте и проценте плана по 25 магазинам входящим в РТП, и распечатывающий эту информацию на бумаге в виде таблицы.

Задание 5

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

Решение:

Если для всех i=1, …, n и j=1, …, n, i>j выполняется равенство a[i, j] = a[j, i], то массив (матрица) является симметричной.

Function check (x: dm): Boolean;

Var

i, j: integer;

t: Boolean;

begin

t:true;

{Предположим, что матрица симметрична}

i:=2;

while t and (i<=n) do

begin

j:=1;

while (j<i) and (x[i,j]=x[j,i] do inc (j);

t:=(j=i);

inc (i)

end;

check:=t

end.

Примечание: описание массива х, ввод и вывод массива смотри лабораторную работу «Разработка, отладка и испытание алгоритмов и программ с использованием процедур и функций».

ЗАДАНИЕ 6

Напишите функцию Dohod, которая вычисляет доход по вкладу. Исходными данными для функции: величина вклада, процентная ставка (годовая) и срок вклада (количество дней).

Решение:

Function Dohod (sum: real; {сумма вклада}

stavka: real; {процентная ставка (годовая)}

srok: integer): real;

begin

Dohod:= sum*(stavka/100/365)*srok

end;

ЗАДАНИЕ 7

Напишите функцию, которая возвращает преобразованную к верхнему регистру строку, полученную в качестве аргумента. Обратите внимание, если эту функцию назвать Up Case (т.е. так, как называется функция языка Pascal, решающая подобную задачу для символов латинского алфавита), то функция программиста подменит функцию языка.

Решение:

Function Up Case (st: string): string;

Var

i: integer;

begin

for i:=0 to Length (st) do {символы нумеруются с нуля!}

case st[i] of {латинские буквы}

a’ .. ‘z’: Up Case[i]:=chr (ord (st[i])-32);

{русские буквы}

a’ .. ‘n’: Up Case[i]:=chr (ord (st[i])-32);

p’ .. ‘я’: Up Case[i]:=chr (ord (st[i])-80);

else {остальные символы не преобраз.}

Up Case[i]:=st[i]

End;

End;

{пример использования функции Up Case}

var

st: string;

begin

writeln (‘Введите текст и нажмите <Enter>’);

write (‘’);

readln (st);

writeln (Up Case (st));

readln

end.