25.06.2010, 16:28 | #1 (permalink) |
Member
Регистрация: 21.06.2010
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Несколько задач
1. Составить программу для вычисления числа с точностью до 0,000001 по формуле 1+1/1!+1/2!+1/3!+...1/n! s:=0; for i:=1 to n do begin f:=1; for j:=1 to i do f:=f/j; s:=s+i*f; end; Writeln('полученное число= ',s:10:6); Readln End. 2. Начав тренировки спортсмен в первый день пробежал 10км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего лня. Какой суммарный путь пробежит спортсмен за 7 дней? В какой день впервые спортсмен пробежит более 20 км? В какой день впервые суммарный путь превысит 60 км? Ну вот на первый вопрос про 7 дней я знаю а вот остальные. Мои наработки добавтье решение на остальные вопросы. program dddf; uses crt; var den, i : Integer; dlina, summa, prozent, a : Real; begin ClrScr; dlina := 10; summa := 0; prozent := 10; if den = 1 then begin WriteLn('Дистанция = ', 10.000:10:3,' м'); WriteLn('Суммарный пробег = ', 10.000:10:3,' м') end else begin for i := 1 to 7 do begin a := (dlina / 100) * prozent; dlina := dlina + a; summa := summa + dlina end; WriteLn('Дистанция =', dlina:10:3,' м'); WriteLn('Суммарный пробег =', (summa+10):10:3,' м') end; WriteLn; ReadLn end. 3. С помощью оператора Repeat напишите программу которая требует у вас пароль, например 111, и если пароль правильный то печатает сообщение "Молодец". Типа a:='vvedi parol'; Repeat a Until a=111??? 4. Составьте программу вычисления степени числа a с натуральным показателем n. (Записать варианты программы с разными видами циклов while, repeat, for). uses crt; var A, N, I : Integer; Res : Extended; BEGIN clrscr; write('Введите число A: '); read(A); write('Введите показатель степени N: '); read(N); Res := 1; For I := 1 to N do begin Res := Res * A; {считаем степень} end; write(A,'^',N,' = ',Res : 3 : 1); {вывод результата} readkey; END. uses crt; var A, N, I : Integer; Res : Extended; BEGIN clrscr; write('Введите число A: '); read(A); write('Введите показатель степени N: '); read(N); Res := 1; while I < N do {пока I < N} begin Res := Res * A; {считаем степень} Inc(I); {инкремент счётчика} end; write(A,'^',N,' = ',Res : 3 : 1); {вывод результата} readkey; END. uses crt; var A, N, I : Integer; Res : Extended; BEGIN clrscr; write('Введите число A: '); read(A); write('Введите показатель степени N: '); read(N); Res := 1; repeat {повторять} begin Res := Res * A; {считаем степень} Inc(I); {инкремент счётчика} end; until I = N; {пока I не будет ровняться N} write(A,'^',N,' = ',Res : 3 : 1); {вывод результата} readkey; END. 5. Составьте программу суммирующую штрафное время команд при игре в хоккей. Выводить на экран суммарное штрафное время обеих команд после любого его изменения. После окончания игры выдать итоговое сообщение. (Не знаю вообще как и что). 6.Каждая бактерия делится на две в течении одной минуты. В начальный момент времени имеется одна бактерия. Составьте программу, которая подсчитывает количество бактерий на заданное вами целочисленное значение момента времени. s:=0; for i:=1 to n do begin f:=1/2; s:=s+1; end; Writeln('кол-во бактерий за ',n,'секунд составляет: ',s); Readln End. 7. Составьте программу получения в порядке убывания всех делителей данного числа. for i:=n downto 1 do if (n mod i) = 0 then writeln(i); Остальную часть задачи не знаю как. Последний раз редактировалось Serjant0007; 25.06.2010 в 17:05 |
25.06.2010, 16:28 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Я думаю, что было бы очень полезно почитать аналогичные обсуждения ACDSee, несколько вопросов Помогите решить несколько задач Несколько вопросов по усилителю |
25.06.2010, 17:00 | #2 (permalink) | |
Студент БГПУ
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
|
Цитата:
Код:
const par=111; {исходный пароль} var par2:integer; begin repeat writeln ('введите пароль'); readln (par2); until par=par2; writeln ('Молодец'); readln end. Последний раз редактировалось shrek=); 25.06.2010 в 17:18 |
|
25.06.2010, 17:26 | #3 (permalink) | |||
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
VAR a,S:REAL; i:BYTE; BEGIN S:=1; i:=0; a:=1; Repeat Inc(i); a:=a/i; S:=S+a; Until a<0.000001; WriteLn(S:9:7); ReadLn; END. Цитата:
Код:
VAR Day_dist, Sum_Dist:REAL; i:INTEGER; BEGIN Sum_Dist:=10; Day_Dist:=10; For i:=2 to 7 do begin Day_Dist:=Day_Dist*1.1; Sum_Dist:=Sum_Dist+Day_Dist; end; WriteLn('The full distance after 7 days is ',Sum_Dist:7:3,' km'); WriteLn; Sum_Dist:=10; Day_Dist:=10; i:=1; Repeat Inc(i); Day_Dist:=Day_Dist*1.1; Sum_Dist:=Sum_Dist+Day_Dist; Until Day_Dist>20; WriteLn('The day distance will exceed 20 km in ',i,'-th day'); WriteLn; Sum_Dist:=10; Day_Dist:=10; i:=1; Repeat Inc(i); Day_Dist:=Day_Dist*1.1; Sum_Dist:=Sum_Dist+Day_Dist; Until Sum_Dist>60; WriteLn('The full distance will exceed 60 km in ',i,'-th day'); WriteLn; ReadLn; END. Цитата:
Код:
VAR Password:STRING; BEGIN Repeat WriteLn('Enter password:'); ReadLn(Password); Until Password='111'; Writeln('Good boy!'); Readln; END. |
|||
25.06.2010, 17:37 | #5 (permalink) |
Member
Регистрация: 21.06.2010
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
эту вот ввобще не представляю как.
Составьте программу определения наибольшего общего делителя двух натуральных чисел. (Реализовать в виде программы следующий вариант алгоритма Эвклида нахождения наибольшего общего делителя двух натуральных чисел: пока числа не станут равными, большее заменяется на разность большего и меньшего чисел. Когда числа станут равными одному и тому же числу d, то вычисления прекращаются: d равно наибольшему общему делителю исходных чисел). |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
25.06.2010, 17:42 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Так... и сколько их еще будет вывалено? Вы не стесняйтесь, нам ведь заняться нечем, да и целая ночь впереди.
Что, дурачков-осликов нашли, умник Вы наш? |
25.06.2010, 21:50 | #8 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Ну ладно, давайте разбираться с "наработками". Задача 4. Тут всё более ли менее сносно, только несколько замечаний: 1. При вводе чисел A и N следует использовать не оператор read, а оператор readln. С read могут возникнуть проблемы. Да и ввод в таком варианте получается аккуратнее. 2. В вариантах программы 2 и 3 лучше в явном виде указать исходное значение переменной счетчика I (до или сразу после строки Res:=1), в данном случае I:=0; Полагаться на транслятор в этом плане не следует. 3. Оператор Repeat ... Until не требует внутри себя операторных скобок begin ... end, поскольку всё, что заключено между Repeat и Until, и есть тело оператора. Это не ошибка, но просто загромождать программу лишними значками не нужно. Задача 5. К сожалению, в хоккее (равно как и в футболе) ничего не понимаю, а потому тоже не знаю, что и как. Задача 6. Извините, но Ваша т.н. "наработка" - это просто бездумный, сляпанный по принципу "шаляй-валяй" набор каких-то символов. Что такое f? Вы что же, и вправду полагаете, что удвоение количества бактерий равнозначно прибавлению к этому количеству единицы? В общем, должно быть что-то в таком роде: Код:
VAR s:LongInt; i,n:Integer; BEGIN s:=1; for i:=1 to n do s:=s*2; Writeln('кол-во бактерий за ',n,' секунд составляет: ',s); Readln End. Задача 8. В принципе, в условии задачи алгоритм расписан, так что остается только его формализовать. Например, так: Код:
VAR a,b:INTEGER; BEGIN Write('a= '); ReadLn(a); Write('b= '); ReadLn(b); Repeat If a>b then a:=a-b else If b>a then b:=b-a; Until a=b; Writeln('d= ',a); ReadLn; END. |
|
25.06.2010, 22:43 | #9 (permalink) |
Member
Регистрация: 21.06.2010
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо ОГРОМНОЕ!!!!!!!!!!!! Особенно за объяснение)))
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|