![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Kosmik |
![]() ![]()
Сообщение
#1
|
![]() ... ![]() Группа: Пользователи Сообщений: 31 Пол: Женский Реальное имя: Надежда Репутация: ![]() ![]() ![]() |
Натуральные числа вводятся с клавиатуры до тех пор, пока не будет введено число -1. Написать программу, выводящую введенные цифры: сначала выводится наиболее часто встречающаяся цифра, в конце наименее встречающаяся цифра.
Подскажите пожалуйста как ее решить...может через массив? ![]() |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата может через массив? Может и через массив, если в задании не оговорено обратное. Но обычно такие задачи даются как раз на умение работать с последовательностями, не сохраняя их. Тем более, что речь о цифрах, а не о числах, тут точно без массива можно обойтись. |
Unconnected |
![]()
Сообщение
#3
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Тут с массивом, но он используется не для хранения элементов последовательности:)
var mas:array[0..9] of byte;
a,i,min,max:integer;
begin
for i:=0 to 9 do mas[i]:=0;
repeat
readln(a);
if (a<>-1) then inc(mas[a]);
until (a=-1);
min:=mas[0];max:=mas[0];
for i:=1 to 9 do
begin
if (min>mas[i]) then min:=mas[i];
if (max<mas[i]) then max:=mas[i];
end;
for i:=0 to 9 do
begin
if (min=mas[i]) then writeln('Reje vseh vstrechaetsya chislo ',i);
if (max=mas[i]) then writeln('Chaje vseh vstrechaetsya chislo ',i);
end;
readln;
end.
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Ну, я взял и ввел первое число 10, что будет?
|
Kosmik |
![]()
Сообщение
#5
|
![]() ... ![]() Группа: Пользователи Сообщений: 31 Пол: Женский Реальное имя: Надежда Репутация: ![]() ![]() ![]() |
Программка конечно работает но выдает не тот результат....она выводит все цифры от 0 до 9 и пишет как часто их используют, но мне все цифры-то выводить не надо. |
Unconnected |
![]()
Сообщение
#6
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Цитата Ну, я взял и ввел первое число 10, что будет? Так а что в задаче надо то?.. В названии темы речь идёт о цифрах, в первом посте - сначала идёт речь о вводе чисел, и тут же - о выводе самых часто встречающихся цифр. Моя программа только на ввод цифр (0..9) расчитана. Сообщение отредактировано: Unconnected - 25.11.2009 21:15 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Цитата Моя программа только на ввод цифр (0..9) расчитана. ну, так возьми и перечитай задание. Задача: вводить ЧИСЛА (пока не будет введено -1), и считать, какая из ЦИФР, присутствующих в этих числах встречается чаще всего. |
Unconnected |
![]()
Сообщение
#8
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Тогда так:
var mas:array[0..9] of byte;
a:string;
i,min,max,k,er:integer;
begin
for i:=0 to 9 do mas[i]:=0;
repeat
readln(a);
if (a<>'-1') then for i:=1 to length(a) do begin
val(a[i],k,er);
inc(mas[k]);
end;
until (a='-1');
min:=mas[0];max:=mas[0];
for i:=1 to 9 do
begin
if (min>mas[i]) then min:=mas[i];
if (max<mas[i]) then max:=mas[i];
end;
for i:=0 to 9 do
begin
if (min=mas[i]) then writeln('Reje vseh vstrechaetsya chislo ',i);
if (max=mas[i]) then writeln('Chaje vseh vstrechaetsya chislo ',i);
end;
readln;
end.
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Lapp |
![]()
Сообщение
#9
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Тогда так: Unconnected, мне кажется нужно выводить ВСЕ встретившиеся цифры, а не только самые (я так понял).Я, может, сделал бы так.. var
s: string;
i: integer;
Stat: array[' '..'9']of integer;
c,max: char;
begin
FillChar(Stat,SizeOf(Stat),#0);
repeat
ReadLn(s);
for i:=1 to Length(s) do Inc(Stat[s[i]]);
until s='-1';
Dec(Stat['1']);
repeat
max:=' ';
for c:='0' to '9' do if Stat[c]>Stat[max] then max:=c;
Stat[max]:=0;
WriteLn(max)
until max=' ';
ReadLn
end.
Тут я постарался избежать сортировки массива в чистом виде (и это избавило прогу от одного лишнего цикла и дополнительного массива). Кроме прочего, использование индекса массива и цикла типа char, надеюсь, полезно для обучения. И вообще, тут несколько хитростей, некоторые из них немного спорные.. ))Здесь нету защиты от неправильного формата ввода.. Зато можно вводить по нескольку чисел на одной строке)). А вообще, конечно, такие вещи следует завершать по вводу пустой строки. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Lapp |
![]()
Сообщение
#10
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Фу ты, я чуть не перепутал volvo с Kosmik )).
Кто угадает, почему? ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Kosmik |
![]()
Сообщение
#11
|
![]() ... ![]() Группа: Пользователи Сообщений: 31 Пол: Женский Реальное имя: Надежда Репутация: ![]() ![]() ![]() |
|
Lapp |
![]()
Сообщение
#12
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
У нас аватры похожие получились Точно!! ![]() ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Unconnected |
![]()
Сообщение
#13
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Цитата Unconnected, мне кажется нужно выводить ВСЕ встретившиеся цифры, а не только самые (я так понял). А мне кажется, только избранные) Ибо задание я понял так: Цитата Написать программу, выводящую введенные цифры: сначала выводится наиболее часто встречающаяся цифра, в конце наименее встречающаяся цифра. Выводящую введенные цифры(дальше уточняется, какие именно):... Цитата Точно!! smile.gif) У них даже выражение.. эээ... лица )) одинаковое! Я с первого поста ждал, пока volvo сюда ответит ![]() -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
Цитата А мне кажется, только избранные) Похоже, Lapp прав. Мне тоже кажется, что надо вывести ВСЕ цифры в порядке убывания частоты встречаемости.Оффтоп (Показать/Скрыть)
|
Kosmik |
![]()
Сообщение
#15
|
![]() ... ![]() Группа: Пользователи Сообщений: 31 Пол: Женский Реальное имя: Надежда Репутация: ![]() ![]() ![]() |
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 5:31 |