Предмет: Информатика, автор: RedDeadStar

Необходимо написать 2 программы в Pascal ABC.

Программа 1 - через "random" вывести четное и нечетное числа. Посчитать их сумму и кол-во четных цифр, кол-во нечетных.

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

Задание оценивается в 100 баллов. Заранее спасибо

Ответы

Автор ответа: NaaMan
1

Программа 1:

{Free Pascal Compiler version 3.0.4+dfsg-23 [2019/11/25] for x86_64}

{Copyright (c) 1993-2017 by Florian Klaempfl and others}

{Target OS: Linux for x86-64}

program test;

   var

       n, k : integer;

       a, b : integer; {a - четные, b - нечетные}

       s : integer; {Сумма всех чисел}

       i : integer; {Счетчик цикла}

begin

   Randomize;

   n := random(50);

   a := 0;

   b := 0;

   s := 0;

   

   for i := 1 to n do begin

       k := random(100);

       s := s + k;

       if k mod 2 = 0 then

           a := a + 1

       else

           b := b + 1

   end;

   writeln('Количество всех чисел ', n);

   writeln('Количество чётных ', a);

   writeln('Количество нечётных ', b);

   writeln('Сумма всех чисел ', s);

end.

Объяснение:

Вначале программа с помощью функции random(50) генерирует случайное количество будущих чисел. Это число заносится в переменную n.

Затем, в цикле программа генерирует определённое количество чисел в промежутке от 0 до 100. С помощью функции mod проверяет их на чётность, и подсчитывает их, четные в переменной а, нечетные - в b.

В конце программа выводит результаты на экран.

Программа 2:

{Free Pascal Compiler version 3.0.4+dfsg-23 [2019/11/25] for x86_64}

{Copyright (c) 1993-2017 by Florian Klaempfl and others}

{Target OS: Linux for x86-64}

program test;

   var

       n, k : integer;

       a, b : integer; {a - отрицательные, b - положительные}

       s : integer; {Сумма всех чисел}

       i : integer; {Счетчик цикла}

begin

   Randomize;

   n := random(50);

   a := 0;

   b := 0;

   s := 0;

   

   for i := 1 to n do begin

       k := random(100) - 50;

       s := s + k;

       if k < 0 then

           a := a + 1

       else

           b := b + 1

   end;

   writeln('Количество всех чисел ', n);

   writeln('Количество отрицательных ', a);

   writeln('Количество положительных ', b);

   writeln('Сумма всех чисел ', s);

end.

Объяснение:

Программа генерирует будущее количество чисел. Это число созраняется в переменной n. Затем в цикле от 1 до n программа с помощью функции random(100)-50 генерирует числа в промежутке от -50 до 50. Затем происходит подсчет отрицательных чисел в переменную а, положительных - в переменную b.

В конце результаты выводятся на экран.

Приложения:

RedDeadStar: Спасибо большое
Похожие вопросы
Предмет: Русский язык, автор: Olga3111
Предмет: Русский язык, автор: Даша1531
Предмет: Русский язык, автор: Wizel
1. Укажите предложение, в котором допущена ошибка при оформлении прямой речи.
А) "Часы, сказал мастер, -мы отремонтируем".
B) Учитель поинтересовался: "Ну, решил задачу?"
С) "Уже подъезжаем", - предупредил проводник, заглянув в купе.
D) "Дети во сне растут, - шепотом сказала бабушка. - Закрывай глазки".

2. Укажите предложения, в котором надо поставить запятую перед конструкцией с КАК.
А) Купол нового комплекса сделан из материала прозрачного как стекло.
В) Время как песок
С) К следующему уроку я знал таблицу умножения как свои пять пальцев.
D) Имбирь принимают как средство от головной боли.

3. Укажите, в каком предложении допущена синтаксическая ошибка.
А) Люди, гуляющие с детьми в парке, приятно проводили время.
В) Повзрослев, у меня появились свои взгляды на жизнь.
С) Футболом занимаются не только мальчики, но и девочки.
D) На ярмарке продавали овощи: картофель, помидоры и огурцы.