[Pascal] przeksztalcenie zdania

0

Musze zrobic program ktory po w pisaniu zdania przeksztalca go w ten sposob ze najpierw wypisuje wszystkie samogloski a potem wszystkie spolgloski, np Dla zdania: to jest zdanie. pszeksztalca na: oeaie tjstzdn.

Program mi dziala tylko, ze zamiast przeksztalcic na: oeaie tjstzdn. pisze mi: oeaie t jst zdn . Jak mam sie pozbyc tych spacji pomiedzy spolgloskami???

program szyfr_jezyka;    
uses crt;
var s:string;
    i:integer;
    czy:boolean;
begin
write('Napisz zdanie: ');
readln(s);
czy:=true;

   for i:=1 to length(s) do
     if UpCase(s[i]) in ['A','I','E','O','U','Y'] then
       write(s[i]);
   write(' ');


   for i:=1 to length(s) do
   begin
     if UpCase(s[i]) in  ['A','I','E','O','U','Y']  then    
        czy:=false
     else write(s[i]);
   end;

readkey;
end.

Z gory dzieki za pomoc.

0

Pewnie dlatego, że uznajesz spację jako spółgłoskę:

for i:=1 to length(s) do
   begin
     if UpCase(s[i]) in  ['A','I','E','O','U','Y',' ']  then    
        czy:=false
     else write(s[i]);
   end;

Powinno załatwić sprawę. Poza tym zastanawia mnie po kiego Ci tam to czy ?

0

Dzieki juz mi dziala, wiedzialam ze spacje trzeba tam gdzies zaznaczyc tylko nie wiedzialam jak

Loloki napisał(a)

Powinno załatwić sprawę. Poza tym zastanawia mnie po kiego Ci tam to czy ?

a w jaki inny sposob mialam napisac ze te liczby nie naleza do samoglosek i ' ' ?

Jeszcze mam jeden pytanko?? Jak zrobic zeby wypisywalo pierwsza litere duza??

0

ale przecież nigdzie z tego czy nie korzystasz :/

0

A na przykład tak :)

if not (UpCase(s[i]) in  ['A','I','E','O','U','Y',' '])  then    
 write(s[i]);

Dodawanie kodu nic nie robiącego w programie mija się z celem, a do tego klawiatrura się bardziej zużywa
;)

0

rzeczywiscie not moglam wykorzystac [wstyd]

0
function FirstLetterUpper(s :string) :string;
begin
 s[1] := UpCase(s[1]);
 Result := s;
end;
0

w ktorym miejscu powinnam to dodac bo jak wpisalam tak jak ponizej to nie dziala , chyba ze zle to napisalam????

program szyfr_jezyka;             
                                  
uses crt;
var s,c:string;
    i:integer;
    czy:boolean;
begin
write('Napisz zdanie: ');
readln(s);
czy:=true;

   for i:=1 to length(s) do

     if UpCase(s[i]) in ['A','I','E','O','U','Y'] then
     begin
       c[1]:=UpCase(c[1]);                       <============================
       c[i]:=s[i];
       write(c[i]);
     end;

   write(' ');

   for i:=1 to length(s) do
     if UpCase(s[i]) in  ['A','I','E','O','U','Y',' ']  then
       czy:=false
     else
     begin
       c[i]:=s[i];
       write(c[i]);
     end;
readkey;
end.

0
program Zadanie;

  var
  i:byte;
  Zdanie , Samogloski,Spolglaski:String;


begin
Writeln('Napisz zdanie :');
Readln(Zdanie);
for i:=1 to length(Zdanie) do
if UpCase(Zdanie[i])in ['A','I','E','O','U','Y']  then
Samogloski:=Samogloski+Zdanie[i] else
if UpCase(Zdanie[i]) in ['B','C','D','F','G','H','J','K','L','M','N','P','Q','R','S','T','V','W','X','Z'] then
Spolglaski:=Spolglaski+Zdanie[i];
Write(Samogloski,'   ',Spolglaski);
readln;
end.

;-P prosze bardzo bo coś nakombinowałaś
( nie dawałem polskich znaków typu ń ć ż,ź ale to możesz dopisać

0

A jak chcesz pierwsza literę wielka to lekka modyfikacja programu piotrkadp.

Write(FirstLetterUpper(Samogloski), '   ', FirstLetterUpper(Spolgloski));

1 użytkowników online, w tym zalogowanych: 0, gości: 1