Текст программы на языке Фортран. integer i, Number, Counter/0/ 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Текст программы на языке Фортран. integer i, Number, Counter/0/



Program Pr_17

Implicit none

integer i, Number, Counter/0/

do i=1, 12

print *,'Введите целое число:’

read *, Number

if (Number > 0) then

    if (mod(Number,2) == 0) then

       Counter = Counter + 1

    endif

endif

enddo

print *,'Четных положительных чисел -', Counter

end

Программа на языке Python

Counter = 0

for i in range(12): # i = 0,..., 11 -- всего 12

print("Введите целое число: ")

Number=int(input())

if Number > 0:

    if Number % 2 == 0:

      Counter = Counter + 1

print("Количество четных положительных чисел:")

print(Counter)

Программа в системе Матлаб

Counter = 0;

for i=1:12

Number= input('Введите целое число:’);

if Number > 0

if mod(Number,2) == 0

    Counter = Counter + 1;

end

end

end

disp('Четных положительных чисел -')

disp(Counter)

 

Задача 18. Нахождение среднего арифметического последовательно вводимых чисел

Условие задачи. Вводятся целые числа. Признаком окончания ввода является ввод нуля. Найти среднее арифметическое всех введенных чисел.

Среднее арифметическое n чисел a 1, a 2, …, a i,..., an представляет собой отношение их суммы a 1 + a 2 + …+ a i +… + an к общему количеству чисел n. По условию задачи неизвестно, сколько именно чисел будет введено, но известен признак окончания – ввод числа ноль, при этом ноль не учитывается при расчете среднего арифметического: не входит в сумму и не увеличивает n (то есть n – это перемененная-счетчик, аналогичная счетчику числа положительных чисел в задаче 17). Если же введенное число a i не нулевое, то оно должно быть прибавлено к уже подсчитанной сумме чисел (то есть, в математической записи, S i = S i-1 + a i), а количество чисел увеличено на единицу. Очевидно, что приведенная формула верна лишь при условии, что значение S 0 (до ввода первого числа) не влияет на подсчет суммы, то есть S 0 = 0. Как только введен ноль (a i = 0), нужно закончить вычисление суммы и подсчет количества ее элементов, и вычислить искомое среднее арифметическое. Поскольку самое первое введенное число тоже может оказаться равным нулю, то увеличение счетчика введенных чисел и вычисление суммы должны производиться после проверки введенного числа. (По этой же причине после завершения ввода до вычисления среднего арифметического необходимо убедиться, что n > 0). Поэтому воспользуемся алгоритмической конструкцией «цикл с предусловием», где условием продолжения выполнения цикла будет неравенство нулю очередного введенного числа: a ≠ 0 (поскольку после суммирования конкретное значение a i интереса не представляет, можно использовать одну и ту же переменную для всех вводимых чисел, то есть a – переменная «введенное число», аналогично одноименной переменной «введенное число» в задаче 17). Итак, в цикле уже проверенное ненулевое значение а прибавляется к сумме, количество чисел увеличивается на 1, и вводится следующее значение а, которое проверяется перед выполнением очередной итерации цикла. Для корректности проверки при первоначальном входе в цикл первое число a вводится до цикла, также до цикла присваивается начальное значение 0 переменным n и S.

Запишем алгоритм с использованием терминов, применяемых при записи компьютерных программ. Укажем, что в нем, с точки зрения математики, переменные a (введенное число) и S (сумма) – целые числа, n (количество введенных чисел) – неотрицательное целое число, SrArif (искомое среднее арифметическое) – рациональное число.

Структурированная запись алгоритма 18

1. S = 0.

2. n = 0.

3. Ввести значение переменной a.

4. Пока a не равно 0, повторять:

4.1. S = S + a.

4.2. n = n + 1.

4.3. Ввести значение переменной a.

5. Если n > 0, то SrArif = S / n, вывести значение переменной SrArif, иначе вывести сообщение «Не введено ни одного числа, среднее арифметическое вычислить невозможно».

Схема алгоритма

 

 

Программа на языке Си

#include <stdio.h>

#include <stdlib.h>

/* Программа подготовлена с помощью Dev-C++ 5.11

*/

int main(int argc, char *argv[]) {

int a, S=0;

unsigned int n=0;

double SrArif;

printf("Введите значение a ");

scanf("%d",&a);

while(a){ 

/* while(a) аналогично while(a!=0) для целого a */

S+=a; /* S = S + a*/

n++; /* n = n + 1 для целого n*/

printf("Введите значение a ");

scanf("%d",&a);

}

if(n>0){

SrArif = S / (double) n;

/* Без приведения типов

было бы целочисленное деление*/

  printf("Среднее арифметическое = %6.3lf\n",

             SrArif);

}

else

printf("Не введено ни одного числа\n");

system("pause");

return 0;

}

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

Program Pr_18;

Var

a, S, n: integer;

SrArif: real;

begin

S:=0;

n:=0;

writeln(' Введите значение a');

readln(a);

while a<>0 do

begin

S:=S+a;

n:=n+1;

writeln(' Введите значение a');

readln(a);

end;

if n>0 then

begin

SrArif:= S/n;

writeln (' Среднее арифметическое = ',

             SrArif: 6: 3);

end

else

writeln (' Не введено ни одного числа ');

end.

Программа на языке Фортран

Program Pr_18

Implicit none

integer a, S/0/, n/0/

real SrArif

print *, ' Введите значение a'

read *, a

do while (a/=0)

S=S+a

n=n+1

print *, ' Введите значение a'

read *, a

enddo

if (n>0) then

  SrArif = real(S)/n

print *, ' Среднее арифметическое = ', SrArif

else

print *, ' Не введено ни одного числа '

endif

end

Программа на языке Python

S = 0

n = 0

print("Введите значение a ")

a=int(input())

while a!= 0:

S = S + a

n = n + 1

print("Введите значение a ")

a=int(input())

if n > 0:

SrArif = S / n

print("SrArif = ")

print(SrArif)

else:

print("Не введено ни одного числа")

Программа в системе Матлаб

S = 0;

n = 0;

a= input(' Введите значение a=');

while a ~= 0

S = S + a;

n = n + 1;

a= input(' Введите значение a=');

end

if n > 0

SrArif = S / n;

disp(strcat('SrArif = ',num2str(SrArif)))

else

disp('Не введено ни одного числа')

end

 



Поделиться:


Последнее изменение этой страницы: 2021-04-12; просмотров: 102; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.190.93 (0.021 с.)