Pereiti prie turinio

paskalio uzdavinukas


Rekomenduojami pranešimai

Sveiki, taigi turiu uzdavinuka is simboliu eilutes pasalinti reikia zodzius kurie prasideda tam tikra raide. Bandau daryt sitaip: tikrinu kiek viena simboli ir jeigu jis yra ta raide, kuria reikia pasalinti, ir pries ji yra tarpas, tuomet is nasivo salinu elementus iki sekancio tarpo, taciau kazkodel sitas mano metodas neveikia. Gal turit kas nors pasiulymu? Idomu butu pasiziureti jusu parasytus pavyzdzius.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Sveiki, taigi turiu uzdavinuka is simboliu eilutes pasalinti reikia zodzius kurie prasideda tam tikra raide. Bandau daryt sitaip: tikrinu kiek viena simboli ir jeigu jis yra ta raide, kuria reikia pasalinti, ir pries ji yra tarpas, tuomet is nasivo salinu elementus iki sekancio tarpo, taciau kazkodel sitas mano metodas neveikia. Gal turit kas nors pasiulymu? Idomu butu pasiziureti jusu parasytus pavyzdzius.

 

Tai gal įdėk kodą, pažiūrėsim kodėl neveikia. Nes idėja tai pakankamai gera. :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

program zodziai;

 

var

Eilute, Isrinkta, Zodis : String;

Simbolis : Char;

i, n : integer;

begin

WriteLn ('Iveskite zodzius:');

ReadLn(Eilute);

WriteLn();

WriteLn ('Iveskite ieskomu zodziu pirmaji simboli: ');

ReadLn(Simbolis);

WriteLn();

for i := 1 to Length(Eilute) do

if (Eilute = Simbolis) and ((Eilute[i - 1] = ' ') or (i = 1)) then

begin

Zodis := '';

for n := i to Length(Eilute) do

begin

Zodis := Zodis + Eilute[n];

if Eilute[n] = ' ' then

break;

end;

Isrinkta := Isrinkta + Zodis;

end;

WriteLn ('Isrinkti zodziai, kurie prasideda simboliu ' + Simbolis);

WriteLn(Isrinkta);

end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

program Noname8;
var zodis: string;
raide: char;
i: integer;
begin

readln(zodis);
insert(' ',zodis, 0);
readln(raide);
i := 2;
while i < length(zodis) do
begin
	if (zodis[i] = raide) and (zodis[i-1] = ' ') then
		while zodis[i] <> ' ' do delete(zodis,i,1)
		else inc(i);
end;
writeln(zodis);
 Readln;
end.

Mano variantas.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dekui, Wuss, tik as vietoj sios dalies

while i < length(zodis) do

naudociau for cikla, nes egzamine uz tai galima butu bausti neracionalumo klaida. :-)

p.s. Norejau paklausti apie inc funkcija. inc(i) tas pats, kas i:=i+1 ? Dekui uz ats.

Redagavo Pacanelis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aha, dabar jau supratau, kai istrinam kelis simbolius, paskui programa bereikalingai tikrina tuscias vietas... :)

 

Stai truputuka pakeiciau, dabar nepalieka daug nereikalingu tarpu programele.

program Noname8;
var zodis: string;
raide: char;
i,temp: integer;
begin
Writeln('Iveskite simboliu eilute:');
readln(zodis);
insert(' ',zodis, 0);
Writeln('Iveskite simboli:');
readln(raide);
i:=2;
while i <= length(zodis) do
begin
	if (zodis[i] = raide) and (zodis[i-1] = ' ') then begin temp:=i;
		while zodis[i] <> ' ' do delete(zodis,i,1); delete(zodis,temp,1); end
		else i:=i+1;
end;
delete(zodis,1,1);
writeln(zodis);
Readln;
end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...