![]() |
|
|
#1
|
|||
|
|||
|
Привет всем. Из-за того, что военкомат заставил проходить мед.обследование в поликлинике, были пропущены некоторые пары по программированию. Думаю, что здесь кто-нибудь поможет мне с заданиями и объяснит что и почему.
Программы выполнять в консоли, для вас они будут скорей всего простыми, а вот для меня....увидим Вот задания: 1. Составьте программу позволяющую вводить с клавиатуры 6 целых чисел и определяющую наименьшее из них. 2. Составьте программы для выполнения задания 1, но с использованием других (по сравнению с заданием 2) операторов цикла. 3. Составьте программу позволяющую вводить с клавиатуры числа и определяющую их среднее геометрическое. Среднее геометрическое n чисел – корень n-й степени из произведения этих чисел. Программа прерывает работу, если введено неположительное число. 4. Найти сумму ряда 1/1*4 + 1/4*7 + 1/7*10... для 20 слагаемых. 5. Составить программу получения всех совершенных чисел меньших заданного числа n. Число называется совершенным, если равно сумме всех своих положительных делителей, кроме самого этого числа. Например, 28=1+2+4+7+14. Надеюсь на помощь ![]() Последний раз редактировалось QMike, 11.11.2010 в 19:27. |
|
#2
|
|||
|
|||
|
Очень прошу, помогите
![]() |
|
#3
|
||||
|
||||
|
Прежде чем объяснять, хотелось бы определится с вашим уровнем знаний.
Можете объяснить, что делает код который я написал: Код:
Var Val,i: Integer; begin for i := 1 to 6 do ReadLn(Val); end. |
|
#4
|
|||
|
|||
|
при числе от 1 до 6 сделать вывод VAl
|
|
#5
|
||||
|
||||
|
Уже неплохо, только не вывод а ввод.
Ну а тут, что я написал?: Код:
Var Val,i,Min: Integer;
begin
Min := 0;
for i := 1 to 6
do begin
ReadLn(Val);
if Val < Min then Min := Val;
end;
end. |
|
#6
|
|||
|
|||
|
как я понял нахождение минимального из 6 чисел
|
|
#7
|
||||
|
||||
|
Молодца, ну а почему код который я привел ранее будет плохо работать, а вот этот уже лучше?
Код:
Var Val,i,Min: Integer;
begin
for i := 1 to 6
do begin
ReadLn(Val);
if i = 1 then Min := Val;
if Val < Min then Min := Val;
end;
WriteLn(Min);
ReadLn;
end. |
|
#8
|
|||
|
|||
|
Потому что writeln чтобы вывести на экран, а readln в конце, чтобы консоль не закрылась
|
|
#9
|
||||
|
||||
|
Это внешние отличия, а основное отличие в определении первоначального минимального числа. В первом примере считается что минимальное это ноль, но ведь это очень грубое допущение, можно вообще ввести 6 чисел от 10 до 20, а программа выдаст минимальное 0, что будет неверно.
|
|
#10
|
||||
|
||||
|
По первой задаче вопросы есть?
|
|
#11
|
|||
|
|||
|
аа, да...не заметил, что было задано минимальное сразу 0
![]() |
|
#12
|
||||
|
||||
|
Продолжим лекцию
![]() Какие еще циклы кроме for ты знаешь? |
|
#13
|
|||
|
|||
|
По первой нет, вроде сделал, работает. А вот с 3-ей что-то припарился как вставить проихведение при таком коде:
program Project2; {$APPTYPE CONSOLE} uses SysUtils, windows; var i, n: integer; a, midgeom: real; Begin Setconsoleoutputcp(1251); Setconsolecp(1251); Write('Введите количество чисел '); Readln(n); Writeln('Введите 1-е число'); Readln(a); For i:=2 To n Do Begin Writeln('Введите ',i,'-е число'); Readln(a); End; midgeom:=exp(ln(n)*(1/(...))); writeln('midgeom=',midgeom:5:3); Readln End. |
|
#14
|
|||
|
|||
|
Цитата:
|
|
#15
|
||||
|
||||
|
Код:
Writeln('Введите 1-е число');
Readln(a);
For i:=2 To n Do
Begin
Writeln('Введите ',i,'-е число');
Readln(a);
End;Код:
For i:=1 To n Do
Begin
Writeln('Введите ',i,'-е число');
Readln(a);
if i := 1 then Sum := a
else Sum := Sum * a;
End; |