Домашние задания: Информатика

Задача по информатике

Программу, значит, написать... - Это можно. Только вот на каком языке программирования это нужно сделать? - Нет, программе-то, конечно, без разницы, на каком языке программирования (а их (языков программирования) существует порядка 40) она написана, а вот учитель/преподаватель может спросить, с чего это программа была написана на этом языке программирования, а не на том, который он(а) преподает.

Вот, например, на Pascal:
 Program P15; 
uses crt;
label l;
var a, i, k, n: integer;
sr: real;
begin
clrscr;
k:=0;
sr:=0;
writeln ('Вводите с клавиатуры только натуральные числа (целые, >0). После ввода каждого из чисел нажимайте клавишу Enter.');
write ('Введите количество чисел в последовательности (не более 1000): ');
readln (n);
if (n1000) then writeln ('Ошибка: введено некорректное значение.') else begin
writeln ('Теперь вводите сами числа (по 1). Внимание: программа не работает с числами, превышающими 30000.');
for i:=1 to n do begin
readln (a);
if (a30000) then begin
writeln ('Ошибка: введено некорректное число.');
goto l;
end;
if (a mod 10=3) or (a mod 100=3) or (a mod 1000=3) or (a mod 10000=3) or (a mod 10=7) or (a mod 100=7) or (a mod 1000=7) or (a mod 10000=7) then begin
k:=k+1;
sr:=sr+a;
end;
end;
if k=0 then writeln ('В введенной последовательности нет чисел, оканчивающихся на 3 или на 7.') else writeln ('Среднее арифметическое чисел последовательности, оканчивающихся на 3 или на 7: ', sr/k :0:2);
end;
l:;
write ('Программа завершена. Для выхода нажмите клавишу Enter.');
readkey;
end.
Вот на Python:
 print ("Вводите с клавиатуры только натуральные числа (целые, >0). После ввода каждого из чисел нажимайте клавишу Enter.") 
n=int (input ("Введите количество чисел в последовательности (не более 1000): "))
if n1000:
print ("Ошибка: введено некорректное значение.")
else:
k=0
sr=0
print ("Теперь вводите сами числа (по 1). Внимание: программа не работает с числами, превышающими 30000.")
for i in range (n):
a=int (input ())
if a30000:
print ("Ошибка: введено некорректное число.")
break
else:
if a%10==3 or a%100==3 or a%1000==3 or a%10000==3 or a%10==7 or a%100==7 or a%1000==7 or a%10000==7:
k=k+1
sr=sr+a
if k==0:
print ("В введенной последовательности нет чисел, оканчивающихся на 3 или на 7.")
else:
print ("Среднее арифметическое чисел последовательности, оканчивающихся на 3 или на 7:", sr/k)
DD
Dima Diacon
43 559
Лучший ответ
Dima Diacon Вот на C:
 #include  
int main()
{
int a, i, k, n;
double sr;
k=0;
sr=0;
printf ("Вводите с клавиатуры только натуральные числа (целые, >0). После ввода каждого из чисел нажимайте клавишу Enter.\n");
printf ("Введите количество чисел в последовательности (не более 1000): ");
scanf ("%d", &n);
if (n1000) {printf ("\nОшибка: введено некорректное значение.");}
else {printf ("\nТеперь вводите сами числа (по 1). Внимание: программа не работает с числами, превышающими 30000.\n");
for (i>=1; i
Dima Diacon Продолжаю:
 if (a%10==3 || a%100==3 || a%1000==3 || a%10000==3 || a%10==7 || a%100==7 || a%1000==7 || a%10000==7) {k=k+1;  
sr=sr+a;
}
}
if (k==0) {printf ("\nВ введенной последовательности нет чисел, оканчивающихся на 3 или на 7.");}
else {printf ("\nСреднее арифметическое чисел последовательности, оканчивающихся на 3 или на 7:");
printf ("%f", sr/k);
}
}
getchar ();
return 0;
}
Вот на C++:
Dima Diacon
 #include   
using namespace std;
int main()
{
setlocale (LC_ALL, "RUS");
int a, i, k, n;
double sr;
k=0;
sr=0;
cout
Dima Diacon Продолжаю:
     else {if (a%10==3 || a%100==3 || a%1000==3 || a%10000==3 || a%10==7 || a%100==7 || a%1000==7 || a%10000==7) {k=k+1;  
sr=sr+a;
}
}
}
if (k==0) {cout
Dima Diacon
 Program P15 
Integer a, i, k, n
Real sr
Write (*,*) "Вводите с клавиатуры только натуральные числа (целые, >0)."
Write (*,*) "После ввода каждого из чисел нажимайте клавишу Enter."
Write (*,*) "Введите количество чисел в последовательности (не более 1000): "
Read *, n
if (n1000) then
Write (*,*) "Ошибка: введено некорректное значение."
else
Write (*,*) "Теперь вводите сами числа (по 1)."
Write (*,*) "Внимание: программа не работает с числами, превышающими 30000."
do i=1, n
Read *, a
if (a30000) then
Write (*,*) "Ошибка: введено некорректное число."
exit
end if
Вновь продолжу позже.
Dima Diacon Продолжаю:
 if (mod (a, 10)==3 .or. mod (a, 100)==3 .or. mod (a, 1000)==3 .or. mod (a, 10000)==3) then  
k=k+1
sr=sr+a
end if
if (mod (a, 10)==7 .or. mod (a, 100)==7 .or. mod (a, 1000)==7 .or. mod (a, 10000)==7) then
k=k+1
sr=sr+a
end if
end do
if (k==0) then
Write (*,*) "В введенной последовательности"
Write (*,*) "нет чисел, оканчивающихся на 3 или на 7."
else
Write (*,*) "Среднее арифметическое"
Write (*,*) "чисел последовательности, оканчивающихся на 3 или на 7.", sr/k
end if
end if
End Program P15
Dima Diacon BASIC и Java я не знаю, а на АЛГОЛе, пожалуй, писать не буду - и так достаточно, как по-мне. Если что - уже в комментариях по просьбам учащихся.
ввод н
с=0
к=0
для х от 1 до н делать
ввод у
если у оканчивается на 3 или на 7 то с=с+у к=к+1 кесли
конец для
вывод с/к