Очень наужна помощь)пожалуйста,помогите в написании двух задач:
1) Написать процедуру (функцию) определения количества дней, прошедших от даты T1 до T2 (год не меняется).
Record year: 1000..3000; month: 1..12; day: 1..31;end;
2) Дано натуральное число N (типа longint). Составить программу вывода цифр, входящих в десятичную запись числа (в порядке возрастаня). Использовать множество.
Заранее огромное спасибо!надеюсь на вашу помощь)
Две задачи на про цедуры и финкции по Turbo Pascal (помогите,пожалуйста)
1. Уже было, поищи по форуму.
2. Перевести число в строку, каждый символ строки перевести в число и внести во множество, потом пройтись в цикле от 0 до 9: если соответствующее число есть во множестве, вывести
2. Перевести число в строку, каждый символ строки перевести в число и внести во множество, потом пройтись в цикле от 0 до 9: если соответствующее число есть во множестве, вывести
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ну первую я сделал,а вот со второй..как-то я туплю..не могли бы вы код написать..хотя бы основные моменты)
s:=str(N);
for i:=1 to length(N) do
if not (s in my_set) then include(s,my_set);
for c:='0' to '9' do
if c in my_set then write(c);
for i:=1 to length(N) do
if not (s in my_set) then include(s,my_set);
for c:='0' to '9' do
if c in my_set then write(c);
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Хыиуду писал(а):s:=str(N);
for i:=1 to length(N) do
if not (s in my_set) then include(s,my_set);
for c:='0' to '9' do
if c in my_set then write(c);
Ну, на Паскале это выглядит как-то вот так
Код: Выделить всё
var s : string;
i, N : longint;
my_set : set of char;
c : char;
begin
str(N, s);
for i:=1 to length(S) do
my_set := my_set + [ s[i]]; { проверять на то, что s[i] уже содержится }
{ в my_set необязательно }
for c:='0' to '9' do
if c in my_set then
writeln(c);
end.
-
- Сообщения: 366
- Зарегистрирован: 31 авг 2007, 03:06
может всё же Length(s) ???? :-)))))for i:=1 to length(N) do
Serge_Bliznykov, Да, конечно
BBB, Serge Bliznykov, спасибо за исправления, но мой код - как раз на Паскале
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Хе, век живи, век учись /это я о себе/ Не знал (или напрочь забыл), что есть для работы с множествами процедуры Include / Exclude:Хыиуду писал(а):BBB, Serge Bliznykov, спасибо за исправления, но мой код - как раз на Паскале
Declaration:
procedure Include(var S: set of T; I:T);
Хотя мой код так же верен. Можно писать и так, и эдак.
Правда, тот же Help Паскаля в описании Include примечает ( ) :
The construct Include (S,I) corresponds to S := S + (I) but the Include
procedure generates more efficient code.
Хотя вру, сам уже забыл, что подпрограмма str в Паскале - процедура, а не функция. Эх, ПХП зохавывает мозг
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.