"První písmeno abecedy,které se ve větě vyskytuje" – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

"První písmeno abecedy,které se ve větě vyskytuje" – Pascal – Fórum – Programujte.com"První písmeno abecedy,které se ve větě vyskytuje" – Pascal – Fórum – Programujte.com

 

vasekk0
Duch
10. 6. 2011   #1
-
0
-

Zdarec potrřeboval bych poradit..delam program a jedni z ukolu je vypiš "První písmeno abecedy,které se ve větě vyskytuje" dostal sem se k tomu ze mne program vypiše které písmena jsou ve větě práve 1x...ale ted nevim jak zjistit a vypsat, které z nich se nachazi v abecede jako prvni..dik za radu.

program ROCNIKOVKA;
uses crt;
var
veta:string[250];
a:array['A'..'Z'] of integer;
z:char;
pocetslov,sest,mezera:integer;
i3,nejdelsi,delka,nejzacatek,nejkonec,zacatek,konec,i:integer;

begin
textcolor(yellow);
write('ROCNIKOVA PRACE-Vavclav Lezak');
writeln;
writeln;
textcolor(11);
zacatek:=1;
nejdelsi:=0;
delka:=0;
pocetslov:=0;
sest:=0;


write('Zadej vetu zakoncenou teckou:');
readln(veta);
writeln;
textcolor(yellow);
write('Vypis:');
writeln;
writeln;
textcolor(11);
for i:=1 to length(veta) do
begin
if (veta[i]=' ') and (veta[i+1]<>' ') then pocetslov:=pocetslov+1;
end;
writeln('Veta obsahuje:',pocetslov+1,'slov(a).');
writeln;
for i3:=1 to length(veta) do begin
if (veta[i3]=' ') or (i3=length(veta)) then
begin
konec:=i3-1;
delka:=i3-zacatek;
if delka>nejdelsi then begin
nejdelsi:=delka;
nejzacatek:=zacatek;
nejkonec:=konec;
end;
zacatek:=i3+1;
end;
end;
writeln('nejdelsi slovo:');
for i3:=nejzacatek to nejkonec do begin
write(veta[i3]);
end;
writeln;
writeln;
writeln('Velikost nejdelsiho slova je:',nejdelsi,'znaku.');
writeln;

begin
for z:='A' to 'Z' do a[z]:=0;
end;
for i:=1 to length(veta) do
begin
z:=upcase (veta[i]);
if z in ['A'..'Z'] then a[z]:=a[z]+1;
end;
for z:='A' to 'Z' do
begin
if a[z]=2 then writeln('Pismeno ',z,'je ve vete 2x');
end;
for z:='A' to 'Z' do
begin
if (a[z]<2) and (a[z]>0) then writeln('Prvni pismeno abecedy je:',z);
end;

writeln;
for i:=1 to length(veta) do
begin
if (veta[i]<>' ') and (veta[i]<>'.') then mezera:=mezera+1
else begin
if mezera>6 then sest:=sest+1;
mezera:=0;
end;
end;
writeln('Ve vete je: ',sest,' slov delsich nez 6 znaku.');

readln;
end.

Nahlásit jako SPAM
IP: 93.99.142.–
JoDiK
~ Anonymní uživatel
987 příspěvků
10. 6. 2011   #2
-
0
-

To vasekk :
Asis jen nepochopil zadání.
Já ho pochopil takto:

Mějme například větu:

"Jelenovi pivo nelej."

V této větě je prvním písmenem abecedy písmeno E, protože ani A ani B ani C ani D tam není.
Jinak řečeno jde o jednoduchý algoritmus hledání minima (který znak z věty je v abecedě nejdřív=nejmenší).

Nahlásit jako SPAM
IP: 88.103.233.–
vasekk0
Duch
10. 6. 2011   #3
-
0
-

Jo pochopil jsem ho uplně stejně...ale bylo mě řečeno že to mám udělat vypsáním prvního nenulového znaku z a[z]..

Nahlásit jako SPAM
IP: 93.99.142.–
návštěvník
~ Anonymní uživatel
66 příspěvků
10. 6. 2011   #4
-
0
-

vypsáním prvního nenulového znaku z a[z]... to moc nechápu, asi mi něco uniká.

Ale další možnost jak to udělat by byla projít abecedu od A do Z a u každého znaku testovat, jestli se ve větě vyskytuje. Pokud ano, tjadáá, máš svůj nejmenší znak.

Nahlásit jako SPAM
IP: 89.102.171.–
nervak0
Věrný člen
10. 6. 2011   #5
-
0
-

if (a[z]<2) and (a[z]>0) then writeln('Prvni pismeno abecedy je:',z);

Testuješ jestli je tam jednou. Což, mimochodem, jde napsat jednoduše jako a[z]=1.

Ale hledáš první, který tam vůbec je a je jedno kolikrát. A když ho najdeš, tak tě ostatní nezajímají, takže ten cyklus přeruš.
if a[z] > 0 then

begin
writeln(....);
break;
end;

Nahlásit jako SPAM
IP: 213.211.51.–
vasekk0
Duch
10. 6. 2011   #6
-
0
-

Funguje to ;) ..dik moc,vzdycky staci tak malo :D

Nahlásit jako SPAM
IP: 93.99.142.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý