Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 29.05.2013, 14:07   #1 (permalink)
MrSteep
Новичок
 
Регистрация: 29.05.2013
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помощь с задачами, Pascal

1) Вычислить сумму чётных чисел от 40 до 80
2) Из всех трёхзначных чисел вывести те, произведение цифр которых = B (B вводится с клавиатуры)
3) Вывести числа A и B которые будут получаться, если знаем, что на начальном этапе они равны 3, A увеличивается на 4, B в два раза, их сумма не должна превышать 100
MrSteep вне форума   Ответить с цитированием

Старый 29.05.2013, 14:07
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Стоит отметить, что ваш топик аналогичен с этими топиками, по этому хорошо было бы прочитать их содержимое

Нужна срочная помощь с программой на Pascal
Работа с файлами, Pascal, нужна помощь
Строки, Pascal. Нужна помощь
Помощь в написании программы по TURBO PASCAL
Нужна помощь в решении задачи Pascal

Старый 29.05.2013, 14:59   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от MrSteep Посмотреть сообщение
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.
Цитата:
Сообщение от MrSteep Посмотреть сообщение
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.
Цитата:
Сообщение от MrSteep Посмотреть сообщение
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.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 20:58.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.