Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2008, 12:19   #1
Deimossy
 
Аватар для Deimossy
 
Регистрация: 19.11.2007
Сообщений: 6
По умолчанию Зачет угрожает расправой..

Помогите, пожалуйста, с лабораторными! Все остальное сдала, а с этими двумя не могу справиться
1.Задача на множества.
Дан текст из строчных латинских букв. Напечатать буквы, входящие в текст не менее двух раз.

Код:
program CollectSample;
var
let1,let2: set of 'a'..'z';
c: char;
begin
let1:= []; 
let2:=[];
read( c );
while c <> '.' do begin
write( c );
let1:= let1 + [ c ];
end;
read©;
if (c in let1) and (c in (let1-[c])) and (not (c in let2)) then
begin
write©;
let2:=let2+[c];
read( c )
end;
writeln;
end.
2.Задача на строки.
Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв. Между соседними словами стоит не меньше одного пробела, за последним словом - точка. Напечатать все слова, отличные от последнего слова, предварительно преобразовав их следующим образом: перенести последнюю букву в начало слова.

Код:
program perenos;
uses crt;
var str,str1,str2,str3,str4:string;
i,n,p:integer;
Begin
clrscr;
writeln('Vvedite stroku: ');
readln(str);
i:=n-1;
str1:=' ';
repeat
if str[i]<>' ' then
str1:=str1 +str[i];
i:=i-1;
until str[i]=' ';
While pos(str1,str)>0 do
begin
p:=pos(str1,str);
delete(str,p,length(str1));
end;

for i:=1 to n-1 do
if str2[i]=' ' then
begin
copy(str2,i-1,1);
str3:=copy(str2,i-1,1);
insert(str3,str2,i-length(str3));
str4:=str2;
end;
writeln('konechnaya stroka',str2);
readln;

End.
Я очень долго пыталась написать сама, но, к сожалению, не вышло Помогите, пожалуйста.
Deimossy вне форума Ответить с цитированием
Старый 17.12.2008, 12:42   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию 1

Код:
var s:string;
    i:integer;
    m,out:set of char;
begin
m:=[];
out:=[];
Writeln('Inpu string');
readln(s);
writeln;
for i:=1 to length(s) do
 if UpCase(s[i]) in m then begin
                    if not(UpCase(s[i]) in out) then begin
                                             write(s[i],' ');
                                             out:=out+[UpCase(s[i])]; 
                                             end;
                   end
    else m:=m+[UpCase(s[i])];
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 17.12.2008, 12:47   #3
Deimossy
 
Аватар для Deimossy
 
Регистрация: 19.11.2007
Сообщений: 6
По умолчанию

alex_fcsm, спасибо огромное!! вы спасли мне жизнь!!!!!
Deimossy вне форума Ответить с цитированием
Старый 17.12.2008, 12:53   #4
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию 2

Код:
uses crt;
var s,sub:string;
    i,n,k,j:integer;
    a:array[1..100] of string;
    m:real;
    c:char;

begin
clrscr;
writeln('Input str');
readln(s);
i:=0;n:=0;
repeat
inc(i);
if (s[i]=' ')and(s[i+1]<>' ') then begin
                   inc(n);
                   a[n]:=sub;
                   sub:='';
                   end
else if (s[i]<>' ')and(s[i]<>'.') then sub:=sub+s[i];
until i=length(s);
if sub<>'' then begin
inc(n);
a[n]:=sub;
end;
writeln;

for i:=1 to n-1 do
  if a[i]<>a[n] then begin
                     sub:='';
                     sub:=sub+a[i][length(a[i])];
                     for j:=1 to length(a[i])-1 do
                       sub:=sub+a[i][j];
                     writeln(sub);
                     end;


end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 22.05.2011, 20:39   #5
Dushess
Новичок
Джуниор
 
Регистрация: 22.05.2011
Сообщений: 1
По умолчанию

alex_fcsm спасибо, а почему последнее слово в строке не обрабатывается?
Dushess вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зачет Или Смерть!!!!!!!!! rabe666 Помощь студентам 8 05.06.2008 16:03
В среду зачет...помогите projectx Фриланс 2 26.05.2008 18:57
Зачет по практике!!!!!! KORT Свободное общение 39 21.07.2007 00:28