Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник.docx
Скачиваний:
39
Добавлен:
21.12.2018
Размер:
2.15 Mб
Скачать

Сумма и произведение цифр числа

Задача:

Дано число. Найти сумму и произведение его цифр.

Описание переменных:

n – число;

sum – сумма цифр;

mult – произведение цифр.

Алгоритм решения задачи:

  1. sum присвоить ноль.

  2. mult присвоить единицу (при умножении на ноль результат будет нулевым).

  3. Пока n больше нуля

  1. найти остаток от деления n на 10 (т.е. последнюю цифру числа), добавить его к сумме и увеличить произведение;

  2. избавиться от последнего разряда числа n путем деления нацело на число 10.

Программа на языке Паскаль:

var n, sum, mult: integer;

begin

write('Enter number: ');

readln(n);

sum := 0;

mult := 1;

while n > 0 do begin

sum := sum + n mod 10;

mult := mult * (n mod 10);

n := n div 10

end;

writeln('Sum of digits = ', sum);

writeln('Multiplication of digits = ', mult);

readln

end.

Окна в crt. Программа для угадывания числа

Задача:

Используя возможности модуля crt, оформить выводимую на экран информацию.

Программа на языке Паскаль:

uses crt;

var i,k,n,x: byte;

begin

clrscr;

randomize;

i := random(10);

window(20,5,60,7);

textbackground(blue);

clrscr;

textcolor(lightgray);

k := 0;

gotoxy(4,2);

write('Введите число: ');

x := 19;

repeat

gotoxy(x,2);

readln(n);

k := k + 1;

x := x + 2

until i = n;

window(20,9,60,11);

textattr := 4 shl 4 + 14;

clrscr;

gotoxy(4,2);

writeln('Угадано с ', k, '-ой попытки');

readln

end.

Примечания:

Процедура window задает окно, которое определяется координатами верхнего левого и правого нижнего углов. Все дальнейшие действия применяются по отношению к текущему окну. Также меняется и координатная сетка.

Вычисление средних арифметических массивов

Задача:

Найти средние арифметические пяти массивов, состоящих их десяти целых чисел.

Описание переменных:

arr – массив, состоящий их 5 элементов-массивов, каждый из которых в свою очередь содержит 10 целых чисел;

average – массив, содержащий средние арифметические вложенных массивов массива arr;

Алгоритм решения задачи:

  1. Заполняем массивы целыми числами с помощью функции fill_array. Функция вызывается в цикле for 5 раз и возвращает очередной подмассив массива arr.

  2. Для каждого вложенного массива целых чисел вычисляется среднее арифметическое с помощью функции found_average. Результат заносится в массив average.

Программа на языке Паскаль:

const n = 10; m = 5;

type

type_numbers = array[1..n] of integer;

type_arr = array[1..m] of type_numbers;

type_average = array[1..m] of real;

var

arr: type_arr; {array of arrays}

average: type_average; {array of averages}

i,j: byte;

function fill_array():type_numbers;

var i:byte; a:type_numbers;

begin for i:=1 to n do a[i]:=random(50)+1;

fill_array := a;

end;

function found_average(a:type_numbers):real;

var i:byte; sum:integer;

begin sum := 0;

for i:=1 to n do sum:=sum+a[i];

found_average := sum / n;

end;

begin randomize; for i:=1 to m do arr[i] := fill_array();

for i:=1 to m do begin

for j:=1 to n do write(arr[i,j]:3);

average[i]:=found_average(arr[i]);

writeln(' -- ', average[i]:6:2);

end;

readln

end.