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

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

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

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

Помощь с задачами, Pascal

  • Автор темы Автор темы MrSteep
  • Дата начала Дата начала

MrSteep

Ученик
Регистрация
29 Май 2013
Сообщения
1
Реакции
0
Баллы
0
Помощь с задачами, Pascal

1) Вычислить сумму чётных чисел от 40 до 80
2) Из всех трёхзначных чисел вывести те, произведение цифр которых = B (B вводится с клавиатуры)
3) Вывести числа A и B которые будут получаться, если знаем, что на начальном этапе они равны 3, A увеличивается на 4, B в два раза, их сумма не должна превышать 100
 
1) Вычислить сумму чётных чисел от 40 до 80
Код:
Var
 S:Longint;
 i:Byte;
Begin
 S:=0;
 for i:=1 to 20 do S:=S+40+2*i;
 writeln('S= ',S);
 readln
End.
2) Из всех трёхзначных чисел вывести те, произведение цифр которых = B (B вводится с клавиатуры)
Код:
Var
 i,B:Word;

Function Prod(Q:Word):Word;
var
 P,T:Word;
begin
 T:=Q;
 P:=T mod 10;
 T:=T div 10;
 P:=P*(T mod 10)*(T div 10);
 Prod:=P;
end;

Begin
 Write('B= ');
 Readln(B);
 for i:=100 to 999 do
  if Prod(i)=B then write(i:4);
 readln
End.
3) Вывести числа A и B которые будут получаться, если знаем, что на начальном этапе они равны 3, A увеличивается на 4, B в два раза, их сумма не должна превышать 100
Ни бельмеса не понял. Или так?
Код:
Var
 a,b:byte;

Procedure D(p,q:byte);
begin
 if p+q<100 then
  begin
   a:=p+4;
   b:=q*2;
   D(a,b);
  end;
end;

Begin
 D(3,3);
 Write('a= ',a-4,'   b= ',(b div 2));
 readln
End.
Впрочем, можно и по-простому, без рекурсивной процедуры:
Код:
Var
 a,b:byte;

Begin
 a:=3;
 b:=3;
 Repeat
  a:=a+4;
  b:=b*2;
 Until (a+b)>100;
 Write('a= ',a-4,'   b= ',(b div 2));
 readln
End.
 
Назад
Сверху