Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Гродненский Форум
27 Апрель 2024, 03:45:52
Новости, реклама:
   Главная   Новости Гродно Помощь Игры Календарь Войти Регистрация   Меню
Гродненский Форум > Компьютеры > Программирование
(Модераторы: Админ, barmalei) > Тема:

Помогите написать программу на PASCAle PLIZ

Страниц  : 1 2 Далее» [Все]   Вниз
  Печать  
Автор Тема: Помогите написать программу на PASCAle PLIZ  (Прочитано 4035 раз)
0 Пользователей и 1 Гость смотрят эту тему.
XeXe
Настоящий гродненец
****

Репутация: +13/-1
Offline Offline

Пол: Мужской
Сообщений: 352


Просмотр профиля
« : 23 Сентябрь 2007, 00:15:18 »

Помогите пожалуйста написать программу:
"Дано натуральное число n (n<=9999).  Верно ли, что это число содержит ровно три одинаковые цифры, как, например, числа 6676, 4544…"   П О Ж А Л У Й С Т А
Записан

Переустановка программ, Windows, антивирус. Быстрый выезд.  Тел. 8-033-623-01-01 (МТС).
maxposedon
Настоящий гродненец
****

Репутация: +26/-0
Offline Offline

Сообщений: 696


empty

Просмотр профиля
« Ответ #1 : 23 Сентябрь 2007, 01:00:09 »

А давай свои лабы/домашние задания ты будешь делать сам?
Записан
medic
кампуцерны дохтар
Кандидат в депутаты
****

Репутация: +127/-2
Offline Offline

Пол: Мужской
Сообщений: 3422


За Беларусь!

Просмотр профиля
« Ответ #2 : 23 Сентябрь 2007, 10:27:54 »

с тибя + а можно и не один

program c4et;
var  a: array[1..4] of integer; x,y,i,j:integer;
begin
writeln('vvedite chislo(100-9999)  ');
read(x);
for i:= 1 to 4 do begin
a:= x mod 10;
x:= x div 10;
end;
y:=1;
for i:= 1 to 4 do begin
for j:= 1 to 4 do begin
if i<>j then begin
if a=a[j] then y:=y+1;
end;
end;
if y=3 then begin
writeln('verno ');
exit;
end;
y:=1;
end;
writeln('neverno');
end.
« Последнее редактирование: 23 Сентябрь 2007, 14:14:52 от medic » Записан

Уронили Siemens на пол сименс цел, пол поцарапан
RILLey_ELf
Гость
« Ответ #3 : 23 Сентябрь 2007, 12:16:56 »

хм сча проверим...

короче введи число "9" которое является натуральным и < 9999
и узнай отрок то в нём три одинаковых числа

medic иди лечи людей с таким кодом как у тебя или с таким подходом как у тебя (лишние begin end не тру подход
короче тебе однозначно можно много минусов ставить
« Последнее редактирование: 23 Сентябрь 2007, 12:28:09 от RILLey_ELf » Записан
medic
кампуцерны дохтар
Кандидат в депутаты
****

Репутация: +127/-2
Offline Offline

Пол: Мужской
Сообщений: 3422


За Беларусь!

Просмотр профиля
« Ответ #4 : 23 Сентябрь 2007, 14:05:38 »

бред сивой кобылы:
1. что вводишь то и получаешь та написанно ведь пределы какие, а лишнее усложнение кода здесь никчему проше поставить условие....... читай 2.
2. минимальным  целым числом содержашим 3 одинаковые цифры может быть только 111
3. 'Лишние' begin, end не есть признак не знания, хе на мой взгляд так код проще читать и отлаживать (из опыта, кога условия такие что пипец это четко читаемые границы и  всякие ;  я не очень люблю)
4. писал 2 мин. прямо сдесь проверял что работает так что не нравится напиши сам а всякие истерические крики по поводу и без повода фф топку
5. чем мой подход не нравится?
« Последнее редактирование: 23 Сентябрь 2007, 14:13:11 от medic » Записан

Уронили Siemens на пол сименс цел, пол поцарапан
maxposedon
Настоящий гродненец
****

Репутация: +26/-0
Offline Offline

Сообщений: 696


empty

Просмотр профиля
« Ответ #5 : 23 Сентябрь 2007, 17:01:03 »

Цитировать
бред сивой кобылы:
1. что вводишь то и получаешь та написанно ведь пределы какие, а лишнее усложнение кода здесь никчему проше поставить условие....... читай 2.
2. минимальным  целым числом содержашим 3 одинаковые цифры может быть только 111
3. 'Лишние' begin, end не есть признак не знания, хе на мой взгляд так код проще читать и отлаживать (из опыта, кога условия такие что пипец это четко читаемые границы и  всякие ;  я не очень люблю)
4. писал 2 мин. прямо сдесь проверял что работает так что не нравится напиши сам а всякие истерические крики по поводу и без повода фф топку
5. чем мой подход не нравится?
/me ржот,
особенно забавлеет пункт 1,2 и 4 в этом сообщении,
учитывая, что в исходном коде 1000 на 100 изменилось совсем недавно.
(SeeED же комментировал тот, вариант где было 1000)
« Последнее редактирование: 23 Сентябрь 2007, 17:09:30 от maxposedon » Записан
medic
кампуцерны дохтар
Кандидат в депутаты
****

Репутация: +127/-2
Offline Offline

Пол: Мужской
Сообщений: 3422


За Беларусь!

Просмотр профиля
« Ответ #6 : 23 Сентябрь 2007, 20:51:35 »

от редакции 1000 на 100 (условине недоглядел) программа работать по другому не стала, а вводить 9 там где написанно 1000 - 9999 тоже наверно верх правильности,
и чем тибя забовляют п 1 2 и 4?
Записан

Уронили Siemens на пол сименс цел, пол поцарапан
RILLey_ELf
Гость
« Ответ #7 : 24 Сентябрь 2007, 10:16:45 »

Цитировать
от редакции 1000 на 100 (условине недоглядел) программа работать по другому не стала, а вводить 9 там где написанно 1000 - 9999 тоже наверно верх правильности,
и чем тибя забовляют п 1 2 и 4?


>Помогите пожалуйста написать программу:  
>"Дано натуральное число n (n<=9999).  Верно ли, что это число содержит ровно три >одинаковые цифры, как, например, числа 6676, 4544…"   П О Ж А Л У Й С Т А

читай условие внимательно шейпер.
где сказано что число должно быть > 100. я понимаю что додумывать чтото новое в условие супер но всё же Улыбка

и в сущности данные могут быть некорректны так что надо считывать string[4] (ну примерно так)
Записан
medic
кампуцерны дохтар
Кандидат в депутаты
****

Репутация: +127/-2
Offline Offline

Пол: Мужской
Сообщений: 3422


За Беларусь!

Просмотр профиля
« Ответ #8 : 24 Сентябрь 2007, 14:23:40 »

ага и иметь лишний гемор с переводом val, ктото писал про лишние begin - end  Смеющийся Смеющийся Смеющийся Смеющийся. этот вариант решение которое ему и нада....... ладна сделаим так

program c4et;
var  a: array[1..4] of integer; x,y,i,j:integer;
begin
writeln('vvedite chislo  '); {пишем}
read(x); {читаем число}
if x<110 then begin {проверяем чтобы число было 3х знычным}
writeln('neverno'); {3 цифры только в 3х значном числе}
exit; { усли меньше то выходим и пишем что неверно}
end;
for i:= 1 to 4 do begin {загоняем в массив цифры числа}
a:= x mod 10;
x:= x div 10;
end;
y:=1; {обнуляем счетчег, 3 потомучто 1 ую цифру каждый раз не сравниваем одна у нас уже есть }
for i:= 1 to 4 do begin {проверка условия о нахожденни одинаковых цифр с их подсчетом}
for j:= 1 to 4 do begin
if i<>j then begin
if a=a[j] then y:=y+1;
end;
end;
if y=3 then begin {проверка счетчика елси 3 то пишем верно и выходим}
writeln('verno ');
exit;
end;
y:=1; {обнуляем счетчег}
end;
writeln('neverno'); {если до этого не вышли значит условие невыполнено - пишем неверно}
end.

типерь точно как нада... кстати что ты будешь подставлять в строку если я введу теже 9 + алгоритм сравнения будет все равно будет похожий. Лаба у человека стопудова на mod и div

PS: гладны через }|{опу не удаляют
ЗЗЫ добавил пояснения
« Последнее редактирование: 24 Сентябрь 2007, 15:49:25 от medic » Записан

Уронили Siemens на пол сименс цел, пол поцарапан
PoliteX
Почетный гродненец
*****

Репутация: +398/-1
Offline Offline

Пол: Мужской
Сообщений: 2482


Dum Spiro Spero - Пока дышу, надеюсь

Просмотр профиля WWW
« Ответ #9 : 24 Сентябрь 2007, 15:20:37 »

сам автор молчит Смеющийся
Записан
coolasm
Почетный гродненец
*****

Репутация: +102/-3
Offline Offline

Пол: Мужской
Сообщений: 1458


//---------//

Просмотр профиля
« Ответ #10 : 24 Сентябрь 2007, 20:20:26 »

Паскаля особо непомню, и нет его у меня, но так, будет, по моему, лутше

program c4et;  
var  a: array[0..9] of integer; x,i:integer;  
flag:boolean;
begin  
writeln('vvedite chislo  '); {пишем}
read(x); {читаем число}

for i:= 1 to 4 do begin {загоняем в массив цифры числа}
inc(a[ (x mod 10)]);  
x:= x div 10;  
end;  

flag:=false;

for i:=0 to 9 do
begin
if (a=2) then flag:=true;
end;

if (flag) then writeln('est') else writeln('net')

end.  
« Последнее редактирование: 24 Сентябрь 2007, 20:30:33 от coolasm » Записан

HTTP Error 404 - File or directory not found.
XeXe
Настоящий гродненец
****

Репутация: +13/-1
Offline Offline

Пол: Мужской
Сообщений: 352


Просмотр профиля
« Ответ #11 : 24 Сентябрь 2007, 21:32:52 »

[highlight]Спасибо[/highlight] что помогли хоть как небуть!!! Ща пойду проверять...
Записан

Переустановка программ, Windows, антивирус. Быстрый выезд.  Тел. 8-033-623-01-01 (МТС).
medic
кампуцерны дохтар
Кандидат в депутаты
****

Репутация: +127/-2
Offline Offline

Пол: Мужской
Сообщений: 3422


За Беларусь!

Просмотр профиля
« Ответ #12 : 25 Сентябрь 2007, 10:05:35 »

2 coolasm интересный подход. вот единственно дельное предложение +1
Записан

Уронили Siemens на пол сименс цел, пол поцарапан
VooDoo
Почетный гродненец
*****

Репутация: +89/-1
Offline Offline

Пол: Мужской
Сообщений: 2885


Dum spiro spero

Просмотр профиля WWW Email
« Ответ #13 : 25 Сентябрь 2007, 11:42:15 »

если честно, то это
Код:
inc(a[ (x mod 10)]);  
первое, что приходит в голову Подмигивающий
Записан

Are you human? - My body is.
Do you feel pain? - My body does.
..- --- --- -.. --- ---
medic
кампуцерны дохтар
Кандидат в депутаты
****

Репутация: +127/-2
Offline Offline

Пол: Мужской
Сообщений: 3422


За Беларусь!

Просмотр профиля
« Ответ #14 : 25 Сентябрь 2007, 12:45:12 »

согласен НО! частенько студентам inc не дают, павда эт не страшно.... методфы решения у всех разные
Записан

Уронили Siemens на пол сименс цел, пол поцарапан
coolasm
Почетный гродненец
*****

Репутация: +102/-3
Offline Offline

Пол: Мужской
Сообщений: 1458


//---------//

Просмотр профиля
« Ответ #15 : 25 Сентябрь 2007, 17:59:26 »

Там походу еще надо пролверку на корректность вводимых данных сделать (либо сделать выход из цикла если х==0), ну это следствие отсутствия возможности тестирования, так как код был разработан в блокноте  Улыбка
« Последнее редактирование: 25 Сентябрь 2007, 18:02:49 от coolasm » Записан

HTTP Error 404 - File or directory not found.
Romchik
Почетный гродненец
*****

Репутация: +184/-2
Offline Offline

Пол: Мужской
Сообщений: 1803


Подпись под аватаром

Просмотр профиля
« Ответ #16 : 25 Сентябрь 2007, 21:35:19 »

Цитировать
2 coolasm интересный подход. вот единственно дельное предложение +1

ППц
Это 1ое что приходит в голову.
Остальное бред
Давай еще ты домой будешь ходить через северный полюс
Записан
meermitka
Останови время хоть на миг........
Почетный гродненец
*****

Репутация: +225/-2
Offline Offline

Пол: Женский
Сообщений: 1077


Просмотр профиля WWW
« Ответ #17 : 26 Сентябрь 2007, 13:29:36 »

В алгоритмах coolasm и medic есть неточности. Еще б знать на каком курсе и на какой специальности автор темы, чтобы выполнить это задание с учетом требований преподов.
Записан

То что не убивает нас делает нас сильней...



http://redlinecity.ucoz.com/
VooDoo
Почетный гродненец
*****

Репутация: +89/-1
Offline Offline

Пол: Мужской
Сообщений: 2885


Dum spiro spero

Просмотр профиля WWW Email
« Ответ #18 : 26 Сентябрь 2007, 14:02:56 »

inc(a[ (x mod 10)]);  на сколько я помню в паскале нумерация массивов с 1 Улыбка для кратного 10 получим выход за array range.
Записан

Are you human? - My body is.
Do you feel pain? - My body does.
..- --- --- -.. --- ---
Tal
Гродненец
**

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 105


ну и кто сказал - что будем делать?

Просмотр профиля
« Ответ #19 : 26 Сентябрь 2007, 17:20:04 »

Трепещите студенты Улыбка
(?<digit>\d{1})\d*\k'digit'\d*\k'digit'
Записан

Дурак думает, умный действует по обстоятельствам.
VooDoo
Почетный гродненец
*****

Репутация: +89/-1
Offline Offline

Пол: Мужской
Сообщений: 2885


Dum spiro spero

Просмотр профиля WWW Email
« Ответ #20 : 26 Сентябрь 2007, 17:41:39 »

вау... человег сумел сгенерить перловый регэксп... а каким он боком к паскалю?
Записан

Are you human? - My body is.
Do you feel pain? - My body does.
..- --- --- -.. --- ---
coolasm
Почетный гродненец
*****

Репутация: +102/-3
Offline Offline

Пол: Мужской
Сообщений: 1458


//---------//

Просмотр профиля
« Ответ #21 : 26 Сентябрь 2007, 21:07:15 »

Цитировать
inc(a[ (x mod 10)]);  на сколько я помню в паскале нумерация массивов с 1 Улыбка для кратного 10 получим выход за array range.
А на сколько я помню паскаль - как укажешь так он и нумеруется (хоть с -10000 или с 5323)
Да, я ж не говорил, что прога будет работать если ее просто набрать в TP (или в чем там), я лишь показал другой, более логичный способ решения.


P.S. Тут так много людей способных давать советы, и так мало людей дающих решения, задача то на 5 минут (с набором текста и тестированием), ну так предоставили бы бедному студенту готовое решение.
« Последнее редактирование: 26 Сентябрь 2007, 21:11:57 от coolasm » Записан

HTTP Error 404 - File or directory not found.
MergeSort
Гродненец
**

Репутация: +33/-0
Offline Offline

Пол: Женский
Сообщений: 116


Просмотр профиля Email
« Ответ #22 : 06 Октябрь 2007, 18:33:35 »

Такие задачки еще в школе решают...
Записан
Dj_NudnyJ
Настоящий гродненец
****

Репутация: +22/-0
Offline Offline

Пол: Мужской
Сообщений: 369


Просмотр профиля
« Ответ #23 : 06 Октябрь 2007, 20:00:19 »

Цитировать
Такие задачки еще в школе решают...
молодец. возьми с полки пряник.
Записан
Dj_NudnyJ
Настоящий гродненец
****

Репутация: +22/-0
Offline Offline

Пол: Мужской
Сообщений: 369


Просмотр профиля
« Ответ #24 : 01 Ноябрь 2007, 01:03:24 »

DimaFromGrodno, а откуда задачка?
похожая была на олимпе толи в 8м толи в 9м классе.
Записан
podonak
Почетный гродненец
*****

Репутация: +88/-2
Offline Offline

Сообщений: 1039


будь проклят день, когда я родился!

Просмотр профиля
« Ответ #25 : 01 Ноябрь 2007, 21:52:30 »

хорошая задача. интересная. сначала обходом дерева находим, возможно ли достичь конечной точки.
потом строим путь.
обход дерева - это как бы общеизвестные алгоритмы и не очень сложные.
второе - посложнее. надо другой алгоритм реализовать - возможно ли попасть из текущего положения на точку, из которой можно войти в следующий поворот. если нет - путь забраковываем. а если да - то находим его.
а для всей красоты нужно второй алгоритм проверять на каждом найденном пути из первого - мало ли какой из них кратчайшим окажется.
это точно задача для школы?
Записан
podonak
Почетный гродненец
*****

Репутация: +88/-2
Offline Offline

Сообщений: 1039


будь проклят день, когда я родился!

Просмотр профиля
« Ответ #26 : 01 Ноябрь 2007, 22:21:24 »

попутно решил себя развлечь и вспомнить паскаль. если где неправильно вспомнил - сорри.
ещё одно решение первоначальной задачи.
не стал упрощать уже приведённые алгоритмы (а они поддаются упрощению), а сделал ещё не приведённый здесь алгоритм (не берусь доказывать его оптимальность ;-))

var
  d: array [1..4] of byte;
  b: boolean;
  i, j, k: byte;
  x: integer;
read x;
if x > 9999
  then writeln('error in data');
  else
    begin
      bool : = false;
      if x >= 111 then
      for i := 0 to 9 do
        for j := 0 to 9 do
          if i <> j then
            for k := 1 to 4 do
              begin
                for l := 1 to 4 do
                  d[l] := i;
                d[k] := j;
                if x = ((d[1] * 10 + d[2]) * 10 + d[3]) * 10 + d[4] then
                  bool := true;
              end
      if bool then writeln('в числе три цифры одинаковы');
    end;
« Последнее редактирование: 01 Ноябрь 2007, 22:22:32 от podonak » Записан
Dj_NudnyJ
Настоящий гродненец
****

Репутация: +22/-0
Offline Offline

Пол: Мужской
Сообщений: 369


Просмотр профиля
« Ответ #27 : 02 Ноябрь 2007, 01:03:14 »

я на олимпе такую (похожую) задачу решал влоб, перебором с рекурсией.
тогда прокатило, ибо не было тестов с большим полем.
Записан
Dj_NudnyJ
Настоящий гродненец
****

Репутация: +22/-0
Offline Offline

Пол: Мужской
Сообщений: 369


Просмотр профиля
« Ответ #28 : 02 Ноябрь 2007, 14:40:38 »

всё оказалось настолько примитивно, что даже скучно. задача сводится к волновику.

солюшен на руби: http://detstwo.com/pub/race.zip
архив запаролен Улыбка

Записан
maxposedon
Настоящий гродненец
****

Репутация: +26/-0
Offline Offline

Сообщений: 696


empty

Просмотр профиля
« Ответ #29 : 02 Ноябрь 2007, 15:10:54 »

Цитировать
всё оказалось настолько примитивно, что даже скучно. задача сводится к волновику.

солюшен на руби: http://detstwo.com/pub/race.zip
архив запаролен Улыбка

А смысл тогда довать на его ссылку?
Или ты что-то забыл сказать?)
Записан
Dj_NudnyJ
Настоящий гродненец
****

Репутация: +22/-0
Offline Offline

Пол: Мужской
Сообщений: 369


Просмотр профиля
« Ответ #30 : 02 Ноябрь 2007, 15:27:25 »

я забыл сказать, что пусть DimaFromGrodno сам решает задачки, а то толку нет, когда за тебя их решают другие.

а архив я выложил для доказания того, что я не просто занимаюсь флэймом, а действительно знаю как решается эта задача. если понадобится, скажу пароль.
Записан
podonak
Почетный гродненец
*****

Репутация: +88/-2
Offline Offline

Сообщений: 1039


будь проклят день, когда я родился!

Просмотр профиля
« Ответ #31 : 02 Ноябрь 2007, 17:51:14 »

да, действительно, можно и волновиком. зря я усложнял :-(
попробую с ходу алгоритм накидать

кидаем в очередь текущее положение
всем пустым полям лабиринта присваиваем значение ноль.
while в очереди что-то есть do
  begin
  берём из очереди местоположение(начальное положение).
  толкаем его в каждую сторону и там:
    begin
       if поле > 0
         then там уже были
         else
                 if поле = конечному
                    then добрались за начальное положение + 1 шагов
                    else
                      begin
                           поле := начальное положение + 1
                           заталкиваем поле в очередь
                      end
    end
  end

действительно несложная задача и если не усложнять как я вначале, то пойдёт и для школьников.
Записан
Страниц  : 1 2 Далее» [Все]   Вверх
  Печать  
 
Перейти в:  

Войти
Войдите, чтобы добавить комментарий

Войдите через социальную сеть

Имя пользователя:
Пароль:
Продолжительность сессии (в минутах):
Запомнить:
Забыли пароль?

Контакт
Powered by MySQL Powered by PHP Мобильная версия
Powered by SMF 1.1.20
SMF © 2006-2024, Simple Machines
Simple Audio Video Embedder
| Sitemap
Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0,229 секунд. Запросов: 19.