Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 08.07.2013, 22:46   #1 (permalink)
demone415
Новичок
 
Регистрация: 08.07.2013
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Программа на Паскаль. Множества

Дана запись простого арифметического выражения над вещественными числами. Знаки операций, используемых в выражениях: -, +, *, /. Напечатать по одному разу все четные цифры, используемые в записи каждого числа чисел в порядке их появления.


Помогите, пожалуйста.
demone415 вне форума   Ответить с цитированием

Старый 08.07.2013, 22:46
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Я думаю, что проблема получила свое решение по этим ссылкам

Паскаль. Программа выводящая в перевернутом виде каждое слово
Множества

Старый 08.07.2013, 23:08   #2 (permalink)
demone415
Новичок
 
Регистрация: 08.07.2013
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Вот, я тут набросал:

program LR3_N;
const
A=['2','4','6','8'];
B=['1','2','3','4','5','6','7','8','9','0'];
var f:text;
v:char;
begin
assign(f,'text.txt'); reset(f);
{for i:=1 to length(f) do}
REPEAT
repeat
read(f,v);
until v in B;
If v in A then
write(v:4);
UNTIL EOF(f);
close(f);
end.

Но этот вариант выводит все четные подряд. А нужно без повторений.
demone415 вне форума   Ответить с цитированием
Старый 09.07.2013, 09:46   #3 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,298
Сказал(а) спасибо: 290
Поблагодарили 512 раз(а) в 169 сообщениях
Репутация: 93301
По умолчанию

Цитата:
Сообщение от demone415 Посмотреть сообщение
Но этот вариант выводит все четные подряд. А нужно без повторений.
Пожалуйста:
Код:
const
 A=['2','4','6','8'];
 B=['1','2','3','4','5','6','7','8','9','0'];
var
 f:text;
 v:char;
 C:Set of Char;
begin
 C:=[];
 assign(f,'text.txt');
 reset(f);
 REPEAT
  repeat
   read(f,v);
  until v in B;
  If (v in A) and Not(v in C) then
   begin
    write(v:4);
    C:=C+[v];
   end;
 UNTIL EOF(f);
 close(f);
 Readln
end.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S на форуме   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Метки
множества, паскаль

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 10:11.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.