![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 19.10.2009
Сообщений: 25
|
![]()
дано натуральное n значное число P. Верноли что данное число содержит три одинаковые цифры? задача pascal
вобщем число вводиться с клавиатуры, а вот то что n значное - это вообще всеголишь заскоки препода... пусть будет n<999999... ну так вот... я вообще не представляю как это можно осушиствить сравнение каждой цифры... есть пара идей а вы подскажите что лучше и вообще имеет ли смысл, будет ли работать...: 1) думал ввести каждую цифру числа как элемент массива... а потом производить сравнение каждого элемента со всеми остальными через цикл( так как n число занаков будет указано) и в случае совпадения прибавлять один и уже потом в конце стравнить сумму этих прибавлений с 3 - вывести ответ верно или нет 2) отделять от введённого числа каждую цифру через mod, div и тут же производить её сравнение... только вот с чем... и это через цикл... ------------------------- также необходимо в коде использовать function... я думал всётаки через массив... но не могу придумать что там можно будет запихнуть в функцию... |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 19.06.2009
Сообщений: 896
|
![]()
Какой ЯП? (10 символов)
|
![]() |
![]() |
![]() |
#3 | |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
![]() Код:
![]() Цитата:
Последний раз редактировалось profi; 19.10.2009 в 01:00. |
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 17.09.2009
Сообщений: 40
|
![]()
За один проход можно. Создаешь массив из
10 элементов. m[i] показывает сколько раз цифра i-1 встречалась в числе. inc(m[(p mod 10)+1]); и сразу же проверяешь не превысило ли значение 3. Тут и n вообще знать не надо. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 18.10.2009
Сообщений: 185
|
![]()
Я бы сделал вот так
Код:
И ещё одно. Этот код правильно будет рабоотать на Borland Pascal. А на Delphi возможно придётся немного поправить. Потому как там по дефалту используются длинные строки. И если я правильно помню индиксы смволов будут не 1..length(s) а 0..(length(s)-1)
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает." Последний раз редактировалось val_nnm; 19.10.2009 в 02:12. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 19.10.2009
Сообщений: 25
|
![]()
вобщем полный фейл(( то что написал профи нормальный код, тоесть всё логично... однако он не правильно рабоатет... НО! мне счас не надо чтобы работало правильно, потому что сидеть и пыпаться добиться его работы счас бессмысленно - его никто проверять на работоспособность не будет... я вот написал через процедуру и функцию - подскажите на счёт переменных, правильно ли я написал? мне надо чтобы код вот этот выглядел как правильный... запускать его не будут
uses crt; var p,n,i,j,k,m:integer; mas:array[1..9] of integer; procedure vmassiv(var p,n:integer; m:integer); begin while p>0 do begin m:=p mod 10; mas[n]:=m; p:=p div 10; inc(n); end; end; function proverka(i,j,k:integer):integer; begin for j:=1 to n-1 do begin if mas[i]=mas[j] then inc(k); end; proverka:=k; end; begin clrscr; write('Vvedite P: '); readln(p); if p < 100 then writeln('Net. Ne verno.') else begin n:=1; vmassiv(p,n,m); k:=0; for i:=1 to n-1 do if proverka(n,i,j) = 3 then writeln('Da. Verno.') else writeln('Net. Ne verno.'); k:=0; end; readln; end. |
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 525
|
![]() Цитата:
![]() ![]() |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите с функцией | Ximerka | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 09.04.2009 00:14 |
Задача с функцией | Серафимий Долговяз | Помощь студентам | 7 | 05.02.2009 08:09 |
Помогите с функцией | Родион | Общие вопросы Delphi | 3 | 08.05.2008 19:18 |