Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

Проверьте, правильно ли я решил?
Условие:
Дано пятизначное число А. Шестизначное число В получается добавлением единицы справа от числа А. Определить, чему равно число А, если известно, что С больше В ровно в три раза.
Эту задачу необходимо решить три раза с использованием трех видов цикла: 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. вне форума   Ответить с цитированием
Старый 15.11.2017, 00:05   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 22,605
Репутация: 5062
По умолчанию

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

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

Хотите сказать правильное решение такое:
Код:

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. вне форума   Ответить с цитированием
Старый 15.11.2017, 00:17   #4
Vyacheslav.
Форумчанин
 
Регистрация: 22.10.2017
Сообщений: 51
Репутация: 10
По умолчанию

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

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

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

Цитата:
Сообщение от 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, 09:40   #8
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 506
Репутация: 373
По умолчанию

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

Цитата:
Сообщение от 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, 14:07   #10
Vyacheslav.
Форумчанин
 
Регистрация: 22.10.2017
Сообщений: 51
Репутация: 10
По умолчанию

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



Опции темы

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

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

Быстрый переход

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




07:52.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru