• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Несколько задач

Serjant0007

Новые
Регистрация
21 Июн 2010
Сообщения
31
Реакции
0
Баллы
0
Несколько задач

Помогите пожалуйста решить мне хоть сколько нибудь задач, мне нужно до завтрашнего дня решить. Так если поможете то я точо успею.
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);
Остальную часть задачи не знаю как.
 
Последнее редактирование:
С помощью оператора Repeat напишите программу которая требует у вас пароль, например 111, и если пароль правильный то печатает сообщение "Молодец". Типа a:='vvedi parol'; Repeat a Until a=111???
Код:
const par=111; {исходный пароль}
var
par2:integer;
begin
repeat 
writeln ('введите пароль');
readln (par2);
until par=par2;
writeln ('Молодец');
readln
end.

Мне представляется это так. Опять же если не правильно поправьте меня.
 
Последнее редактирование:
Помогите пожалуйста решить мне хоть сколько нибудь задач, мне нужно до завтрашнего дня решить. Так если поможете то я точо успею.
1. Составить программу для вычисления числа с точностью до 0,000001 по формуле 1+1/1!+1/2!+1/3!+...1/n!
Код:
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.
2. Начав тренировки спортсмен в первый день пробежал 10км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего лня. Какой суммарный путь пробежит спортсмен за 7 дней? В какой день впервые спортсмен пробежит более 20 км? В какой день впервые суммарный путь превысит 60 км?
Код:
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.
3. С помощью оператора Repeat напишите программу которая требует у вас пароль, например 111, и если пароль правильный то печатает сообщение "Молодец".
Код:
VAR
 Password:STRING;
BEGIN
 Repeat
  WriteLn('Enter password:');
  ReadLn(Password);
 Until Password='111';
 Writeln('Good boy!');
 Readln;
END.
 
Мне представляется это так. Опять же если не правильно поправьте меня.
В принципе правильно, только мне представляется, что всё-же логичнее для пароля использовать строковую переменную.
 
эту вот ввобще не представляю как.
Составьте программу определения наибольшего общего делителя двух натуральных чисел. (Реализовать в виде программы следующий вариант алгоритма Эвклида нахождения наибольшего общего делителя двух натуральных чисел: пока числа не станут равными, большее заменяется на разность большего и меньшего чисел. Когда числа станут равными одному и тому же числу d, то вычисления прекращаются: d равно наибольшему общему делителю исходных чисел).
 
Так... и сколько их еще будет вывалено? Вы не стесняйтесь, нам ведь заняться нечем, да и целая ночь впереди.
Что, дурачков-осликов нашли, умник Вы наш?
 
Я же не прям решать вас полностью прошу свои наработки я выкладываю. А то скажите что я просто так ничего делать не хочу и спрашиваю.
 
Я же не прям решать вас полностью прошу свои наработки я выкладываю. А то скажите что я просто так ничего делать не хочу и спрашиваю.
Хорошо. Только есть подозрение, что некоторые (если не все) из Ваших "наработок" - это что-то сляпанное кое-как наспех. А так программировать бессмысленно - компьютер ошибок не прощает.
Ну ладно, давайте разбираться с "наработками".

Задача 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.

Задача 7. А никакой "остальной части" и не надо - всё правильно. Осталось только дооформить: создать раздел описания переменных да останов в конце приделать.

Задача 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.
 
Спасибо ОГРОМНОЕ!!!!!!!!!!!! Особенно за объяснение)))
 
Назад
Сверху