Root /ArchiveAbout
()

Series 1 - 7

Series 1 - 7

На этой странице представлены первые 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

  1. **procedure** Randomize;: Инициализирует датчик псевдослучайных чисел.2) **procedure** Randomize(seed: integer);: Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности.
  2. **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

  1. **procedure** Randomize;: Инициализирует датчик псевдослучайных чисел.2) **procedure** Randomize(seed: integer);: Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности. **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1
  2. **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

  1. **procedure** Randomize;: Инициализирует датчик псевдослучайных чисел.2) **procedure** Randomize(seed: integer);: Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности.
  2. **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

  1. **procedure** Randomize;: Инициализирует датчик псевдослучайных чисел.2) **procedure** Randomize(seed: integer);: Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности. **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1
  2. **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