Вопрос № 127670: Вот тут задачка:
С клавиатуры вводится целое натуральное число. Определите, сколько разных цифр присутствует в его записи.
Подскажите мне пожалуйста, мою ошибку. Программа в приложении....Вопрос № 127681: Уважаемые эксперты! Прошу решить мне две задачи
1.Написать программу с использованием переменных типа запись
с полями, указанными в задании 5. Вывести информацию о рейсах парохода на Москву.
2. Создать файл данных, каждая запись которого ...
Вопрос № 127.670
Вот тут задачка:
С клавиатуры вводится целое натуральное число. Определите, сколько разных цифр присутствует в его записи.
Подскажите мне пожалуйста, мою ошибку. Программа в приложении.
Похоже, что в приведённой Вами программе сам путь решения неверен. Предлагаю Вашему вниманию свою программу, которую недавно предоставил на такой же вопрос. Суть решения: формируется массив из 10 целых чисел и заполняется нулями; введённое число раскладывается на цифры, каждая из которых сражу же используется как индекс ячейки массива, которую увеличиваем на единицу. После банально считаем, сколько яцеек массива содержит что-то большее, чем нуль.
Приложение:
--------- Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.
Ответ отправил: Delph (статус: Студент)
Ответ отправлен: 17.03.2008, 08:53 Оценка за ответ: 5 Комментарий оценки: А не могли бы вы решить задачу только теми инструментами, которые использованы в моей программе?
Отвечает: Пупорев Юрий Борисович
Здравствуйте, Хощенко Артём Владимирович!
По совету старших товарищей второй вариант решения из двух, представленных на форуме, отправляю как ответ.
Это решение с использованием строк и множеств позволяет работать с числпми до 255 знаков.
program q7670;
uses crt;
type
chifra = set of '0'..'9'; {множество символов цифр}
var g1,g2,g3:chifra;
N:string; {число длиной до 255 знаков}
k,i:integer;
begin
clrscr;
write('N=');readln(N);
g1:=['0'..'9']; {множество символов цифр}
g2:=[]; {пустое множество}
for i:=1 to length(N) do
include(g2,N[i]); {заполняем его символами цифр}
g3:=g1*g2; {пересечение множеств, показывает какие цифры}
k:=0; { встречабтся один раз}
for i:=48 to 57 do {48..57 коды цифр chr(48) символ цифры '0'}
if chr(i) in g3 then
begin
k:=k+1; {считаем количество разных цифр}
write(chr(i),' '); {выводим цифры}
end;
writeln;
writeln('Kol razn cifr=',k);{выводим количество на экран}
readln;
end.
Ответ отправил: Пупорев Юрий Борисович (статус: 8-ой класс)
Ответ отправлен: 17.03.2008, 11:39 Оценка за ответ: 5 Комментарий оценки: cпасибо.
Отвечает: Евчик Сергей Александрович
Здравствуйте, Хощенко Артём Владимирович! Думаю программа окажется намнго меньше если использовать множества! Код в приложении.
Приложение:
Ответ отправил: Евчик Сергей Александрович (статус: 3-ий класс)
Ответ отправлен: 17.03.2008, 15:30 Оценка за ответ: 5 Комментарий оценки: Cпасибо.
Вопрос № 127.681
Уважаемые эксперты! Прошу решить мне две задачи
1.Написать программу с использованием переменных типа запись
с полями, указанными в задании 5. Вывести информацию о рейсах парохода на Москву.
2. Создать файл данных, каждая запись которого состоит из следующих полей:
Поля записи
Рейс парохода Пункт назначения Время отхода стоимость билета
Отвечает: Костя Симанович
Здравствуйте, Слотин Владимир Сергеевич!
Ниже решение, которое создаёт файл данных. В приложении соответственно читает (по п.1 задания) если из решения убрать уловие проверки то будут выведены все записи созданного файла.
program paroxod;
type
reis = record
nameg : integer; //рейс парохода
punkt : string[50]; // пункт назначения
wrem : string[10];// время отхода
zena : string[10]; // стоимость билета
end;
empfilerec = File of reis;
var
f : empfilerec;
zapis : reis;
procedure writerecord;
begin
{сохранение одной записи в файл}
write(f, zapis);
end;
procedure getdata;
begin
with zapis do
begin
write('Введите номер рейса (или 0 для завершения)');
readln(nameg);
while nameg <> 0 do
begin
write('Пункт назначения. '); readln(punkt);
write('Время отхода. '); readln(wrem);
write('Цена билета. '); readln(zena);
writerecord;
write('Введите номер рейса (или 0 для завершения)');
readln(nameg);
end;
end;
end;