Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2017, 18:01   #1
Vyacheslav.
Форумчанин
 
Регистрация: 22.10.2017
Сообщений: 113
Сообщение Проверьте, правильное ли решение?

Проверьте, правильно ли я решил?
Условие:
Дано пятизначное число А. Шестизначное число В получается добавлением единицы справа от числа А. Определить, чему равно число А, если известно, что С больше В ровно в три раза.
Эту задачу необходимо решить три раза с использованием трех видов цикла: FOR, WHILE и REPEAT.
Код:
Program for_to_do;
Uses crt;
VAR A,B,C,i:integer;
BEGIN
write('Vvedite celoe 6-ti znachnoe chislo(B): ');
  readln(b);
  if (b > 100000) and (b < 999992) then
 begin
for i:=b  to b do
begin
Writeln('Pri B = ',B);
A:=(b div 10);
Write('A = ',A);
C:=B*3;
Writeln(' C = ',C);
end;
end
else
Writeln('Oshibka! Vashe chislo ne 6-ti znachnoe.'); 
 
END.
Код:
Program While_do;
Uses crt;
VAR A,B,C:integer;
BEGIN
write('Vvedite celoe 6-ti znachnoe chislo(B): ');
  readln(b);
  if (b <= 999991) then
 begin
while (b > 100000) and (b < 999992)   do
begin
Writeln('Pri B = ',B);
A:=(b div 10);
Write('A = ',A);
C:=B*3;
Writeln(' C = ',C);
break;
end;
end
else
Writeln('Oshibka! Vashe chislo ne 6-ti znachnoe.'); 
 
END.
Код:
Program Repeat_Until;
Uses crt;
VAR A,B,C:integer;
BEGIN
write('Vvedite celoe 6-ti znachnoe chislo(B): ');
  readln(b);
  if (b <= 999991) then
 begin
Repeat
Writeln('Pri B = ',B);
A:=(b div 10);
Write('A = ',A);
C:=B*3;
Writeln(' C = ',C);
until(b > 100000) and (b < 999992)
end
else
Writeln('Oshibka! Vashe chislo ne 6-ti znachnoe.'); 
 
END.
Условие странное.
Нам дано А, то есть оно у нас уже есть, при этом мы должны найти то, что нам уже дано.. Блин, обычно в задачах есть число которое нам дано, и неизвестное, которое необходимо найти, а тут какое-то странное условие, по разному его понять можно...
В чем разница идти от В или от С? Ну программа немного измениться, но по сути вывод такой-же будет.. Если пойти от А(т.е. А вводим) то зачем находить то, что итак известно? Странная задача.
Vyacheslav. вне форума Ответить с цитированием
Старый 14.11.2017, 23:05   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Vyacheslav. Посмотреть сообщение
словие странное.
Нам дано А, то есть оно у нас уже есть, при этом мы должны найти то, что нам уже дано..
так проблема в том, что Вы задание неверно записали (или Вам его неверно продиктовали).

настоящее задание звучит так:
Цитата:
2. Дано пятизначное число А. Шестизначное число B получается добавлением единицы слева к числу А. Число C также
шестизначное, но получается добавлением единицы справа от
числа A. Определить, чему равно число A, если известно, что C
больше B ровно в три раза.
и, разумеется, никакого числа вводится не должно (т.е. никаких readln(a)/readln(b)/readln(c)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.11.2017, 23:14   #3
Vyacheslav.
Форумчанин
 
Регистрация: 22.10.2017
Сообщений: 113
По умолчанию

Хотите сказать правильное решение такое:
Код:
Program for_to_do;
Uses crt;
VAR A,B,C:integer;
BEGIN
for a:=10000  to 99999 do
begin
Write('Pri A = ',A);
B:=(A*10)+1;
Write(' B = ',B);
C:=B*3;
Writeln(' C = ',C);
end;
END.
?
Vyacheslav. вне форума Ответить с цитированием
Старый 14.11.2017, 23:17   #4
Vyacheslav.
Форумчанин
 
Регистрация: 22.10.2017
Сообщений: 113
По умолчанию

Возможно, преподаватель изменил условие задачи специально, дабы нельзя было найти в интернете..
Vyacheslav. вне форума Ответить с цитированием
Старый 14.11.2017, 23:45   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Vyacheslav. Посмотреть сообщение
Хотите сказать правильное решение такое:
нет. ход мысли верный, но ведь С это
Цитата:
Число C также шестизначное, но получается добавлением единицы справа от числа A
нужно получить B и С и проверить, что
Цитата:
C больше B ровно в три раза
вот это тогда и выдать A
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.11.2017, 00:10   #6
Vyacheslav.
Форумчанин
 
Регистрация: 22.10.2017
Сообщений: 113
По умолчанию

A= 10000; B=100001; C = 110000*3=330000.
...
A= 99999; B=999991; C = 199999*3=599997.
Так что-ли?
Vyacheslav. вне форума Ответить с цитированием
Старый 15.11.2017, 00:20   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Vyacheslav. Посмотреть сообщение
Так что-ли?
разумеется нет.


Цитата:
Сообщение от Vyacheslav. Посмотреть сообщение
A= 10000; B=100001; C = 110000
вопрос.
Цитата:
C больше B ровно в три раза
?!
Если да - то это правильный ответ.
Код:
B:=A*10+1;
C:=100000+A;
if C=(B*3) then begin WriteLn('FOUND! A = ', A); break; End;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.11.2017, 08:40   #8
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

А позвольте угадать? 42857 - да?
Black Fregat вне форума Ответить с цитированием
Старый 15.11.2017, 09:21   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
А позвольте угадать? 42857 - да?
оно!


Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Код:
B:=A*10+1;
C:=100000+A;
у меня в примере неверно B и С формируются. в условии то наоборот:
Код:
C:=A*10+1;
B:=100000+A;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.11.2017, 13:07   #10
Vyacheslav.
Форумчанин
 
Регистрация: 22.10.2017
Сообщений: 113
По умолчанию

Цитата:
А позвольте угадать? 42857 - да?
Как вы получили это число?
Vyacheslav. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Более правильное решение ndiezel Общие вопросы C/C++ 7 21.04.2013 21:32
Проверьте решение. Camelot_2012 Паскаль, Turbo Pascal, PascalABC.NET 2 01.06.2012 11:42
Решение правильное маГГ85 PHP 2 15.12.2011 21:30
проверьте решение ronny137 Помощь студентам 16 08.12.2010 23:03
Проверьте решение массива. Profan4ik Помощь студентам 11 08.06.2010 21:24