На этой странице представлены первые 7 примеров из раздела "последовательности в Паскаль" задачника Абрамяна.
Series1 – находим сумму последовательно введенных 10-ти чисел.
Series2 – находим произведение введенных 10-ти вещественных чисел.
Series3 – среднее арифметическое последовательности 10-ти вещественных чисел.
Series4 – находим сумму и произведение последовательности N вещественных чисел.
Series5 – выводим целые части и сумму введенных N положительных чисел.
Series6 – находим дробные части и произведение введенных N положительных чисел.
Series7 – округляем последовательность введенных N вещественных чисел.
Series1. Даны десять вещественных чисел. Найти их сумму.
Последовательность действий очевидна:
var
i: byte;
a, S: real;
begin
S := 0; //начальное значение суммы
randomize; //генератор псевдослучайных чисел
for i := 1 to 10 do begin
a := -10 + 20 * random; //случайное вещественное число [-10, 10)
write(a:0:3, '':3); //выводим его, округляя до 3 знаков
S := S + a //прибавляем к сумме найденное число
end;
writeln;
writeln('S = ', S:0:3)
end.
**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308
**procedure** Randomize;
: Инициализирует датчик псевдослучайных чисел.2)**procedure** Randomize(seed: integer);
: Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности.**function** Random(maxValue: integer): integer;
: Возвращает случайное целое в диапазоне от 0 до maxValue - 1.2)**function** Random(a,b: integer): integer;
: Возвращает случайное целое в диапазоне от a до b.3)**function** Random: real;
: Возвращает случайное вещественное в диапазоне [0..1). Series2. Даны десять вещественных чисел. Найти их произведение.
var
i: byte;
a, D: real;
begin
D := 1; //начальное значение произведения
randomize; //генератор псевдослучайных чисел
i := 0;
while i < 10 do begin
inc(i);
a := -5 + 10 * random; //случайное вещественное число [-5, 5)
write(a:0:3, '':3); //выводим его, округляя до 3 знаков
D := D * a //умножаем произведение на данное число
end;
writeln;
writeln('произведение = ', D:0:3)
end.
**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308
**procedure** Randomize;
: Инициализирует датчик псевдослучайных чисел.2)**procedure** Randomize(seed: integer);
: Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности.**procedure** Inc(**var** i: integer);
: Увеличивает значение переменной i на 1**function** Random(maxValue: integer): integer;
: Возвращает случайное целое в диапазоне от 0 до maxValue - 1.2)**function** Random(a,b: integer): integer;
: Возвращает случайное целое в диапазоне от a до b.3)**function** Random: real;
: Возвращает случайное вещественное в диапазоне [0..1). Series3. Даны десять вещественных чисел. Найти их среднее арифметическое.
var
i: byte;
a, S: real;
begin
S := 0; //начальное значение суммы
randomize; //генератор псевдослучайных чисел
for i := 1 to 10 do begin
a := -10 + 20 * random; //случайное вещественное число [-10, 10)
write(a:0:3, '':3); //выводим его, округляя до 3 знаков
S := S + a //прибавляем к сумме найденное число
end;
S := S / 10; //делим сумму на 10
writeln;
writeln('среднее арифметическое = ', S:0:3)
end.
**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308
**procedure** Randomize;
: Инициализирует датчик псевдослучайных чисел.2)**procedure** Randomize(seed: integer);
: Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности.**function** Random(maxValue: integer): integer;
: Возвращает случайное целое в диапазоне от 0 до maxValue - 1.2)**function** Random(a,b: integer): integer;
: Возвращает случайное целое в диапазоне от a до b.3)**function** Random: real;
: Возвращает случайное вещественное в диапазоне [0..1). Series4. Дано целое число N и набор из N вещественных чисел. Вывести сумму и произведение чисел из данного набора.
var
i, N: integer;
a, S, D: real;
begin
S := 0; //начальное значение суммы
D := 1; //начальное значение произведения
write('N = ');
readln(N); //вводим количество чисел N
randomize; //генератор псевдослучайных чисел
i := 0;
repeat
inc(i);
a := -5 + 10 * random; //случайное вещественное число [-5, 5)
write(a:0:3, '':3); //выводим его, округляя до 3 знаков
S := S + a; //прибавляем к сумме найденное число
D := D * a //умножаем произведение на данное число
until i = N;
writeln;
writeln('сумма = ', S:0:3);
writeln('произведение = ', D:0:3)
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308
**procedure** Randomize;
: Инициализирует датчик псевдослучайных чисел.2)**procedure** Randomize(seed: integer);
: Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности.**procedure** Inc(**var** i: integer);
: Увеличивает значение переменной i на 1**function** Random(maxValue: integer): integer;
: Возвращает случайное целое в диапазоне от 0 до maxValue - 1.2)**function** Random(a,b: integer): integer;
: Возвращает случайное целое в диапазоне от a до b.3)**function** Random: real;
: Возвращает случайное вещественное в диапазоне [0..1). Series5. Дано целое число N и набор из N положительных вещественных чисел. Вывести в том же порядке целые части всех чисел из данного набора (как вещественные числа с нулевой дробной частью), а также сумму всех целых частей.
Это ещё одна задача на последовательности в Паскаль. Для определения целой части вещественного числа используем функцию int(a)
, которая результат (число без дробной части) записывает как вещественное число.
var
i, N: integer;
a, S: real;
begin
write('N = ');
readln(N);
S := 0; //начальное значение суммы
writeln('Введите ', N, ' вещественных чисел:');
i := 1;
repeat
read(a);
S := S + int(a); //к сумме прибавляем целую часть
write(int(a), ' '); //выводим целую часть
inc(i)
until i > N;
writeln;
writeln('сумма целых частей = ', S);
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308**function** Int(x: real): real;
: Возвращает целую часть числа x.**function** Int(x: real): real;
: Возвращает целую часть числа x.**procedure** Inc(**var** i: integer);
: Увеличивает значение переменной i на 1 * * *
А вот если вы пишете в PascalABC.Net, то предыдущий код задачи Series5 можно записать следующим образом:
begin
write('N = ');
var N := readInteger; //вводим целое число и записываем в N
var S : real := 0;
writeln('Введите ', N, ' вещественных чисел:');
for var i := 1 to N do begin
var a := readReal;//вещественное число, введенное с клавиатуры
S := S + int(a);
write(int(a), ' ')
end;
writeln;
writeln('сумма целых частей = ', S);
end.
**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308**function** Int(x: real): real;
: Возвращает целую часть числа x.**function** Int(x: real): real;
: Возвращает целую часть числа x. Здесь readInteger - считывает введенное с клавиатуры число и записывает как целое, readReal - считывает введенное с клавиатуры вещественное число. К тому же, все переменные можно описывать в теле программы.
Series6. Дано целое число N и набор из N положительных вещественных чисел. Вывести в том же порядке дробные части всех чисел из данного набора (как вещественные числа с нулевой целой частью), а также произведение всех дробных частей.
После введения числа вычисляем и выводим уже новую последовательность дробных частей от данного числа. Для определения дробной части вещественного числа используем функцию frac(a)
.
var
i, N: integer;
a, D, frac_a: real;
begin
write('N = ');
readln(N);
D := 1; //начальное значение произведения
writeln('Введите ', N, ' вещественных чисел:');
for i := 1 to N do begin
read(a); //вводим вещественное число
frac_a := frac(a); //находим дробную часть числа
D := D * frac_a; //произведение умножаем на дробную часть числа
write(frac_a, ' ') //выводим дробную часть числа
end;
writeln;
writeln('произведение дробных частей = ', D);
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308**function** Frac(x: real): real;
: Возвращает дробную часть числа x. Series7. Дано целое число N и набор из N вещественных чисел. Вывести в том же порядке округленные значения всех чисел из данного набора (как целые числа), а также сумму всех округленных значений.
Для округления вещественного числа до ближайшего целого используем функцию round(a)
, которая результат записывает как целое число.
var
i, N, c: integer;
a, S: real;
begin
write('N = ');
readln(N);
S := 0; //начальное значение суммы
writeln('Введите ', N, ' вещественных чисел:');
i := 1;
while i <= N do begin
read(a);
c := round(a); //округляем число до ближайшего целого
S := S + c; //к сумме прибавляем округленное до целого
write(c, ' '); //выводим округленную часть
inc(i)
end;
writeln;
writeln('сумма округленных чисел = ', S);
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308**function** Round(x: real): integer;
: Возвращает x, округленное до ближайшего целого.**procedure** Inc(**var** i: integer);
: Увеличивает значение переменной i на 1