Ahoj, potřebuji pomoc ve škole nás učí v pascalu ale náš pan učitel spíš neučí než učí a chce po nás že máme udělat program který bude mít tuto hlavní funkci (ty vedlejší zvládám). Zadám mu řetězec, program v něm najde největší písmeno a-z a zvětší je o jedna a přidá je na konec řetězce. Vůbec netuším jak na to napadá mně snad jen každému znaku určit číslo ale jak dál? a hlavně co se stane když někdo zadá Z? Díky moc potřeboval bych to přes svátky stihnou.
Fórum › Pascal
Nalezení největšího znaku v řetězci.
Na žádné fórum nepiš, že učitel neučí. NIKDY to není pravda.
Pokud máš hledat největší z malých písmen, tak velká písmena (resp. všechno ostatní) budeš ignorovat. Možná bylo myšleno, že na velikosti nezáleží. Vyber si, nebo se zeptej.
Takže projdeš řetězec a otestuješ jednotlivé znaky. Můžeš použít cyklus for, délku řetězce zjistíš funkcí length. Platí fakt, že znaky abecedy jsou v tabulce znaků u sebe a postupně od a do z, takže to můžeš jednoduše testovat nějak takhle:
(znak >= 'a') and (znak <= 'z') and (znak > max) ...
Pro to zvětšení o 1 asi nepůjde jen přičíst 1, ale budeš muset použít funkce ord (vrátí ordinální hodnotu znaku) a chr (opak ord).
#2 q
Ahoj Díky za radu ono ano nikdy to není pravda ovšem když ti učitel dá pouze studijní materiál který vypadá tak že vyfotí telefonem pár stránek z knížky ty nám dá pronese "a dělejte" a jinak se nám celou hodinu nevěnuje :) navíc s pascalem teprve začínáme takže u funkce ord a chr nejsme :( Nicméně mohl by jsi mi to testování prosím více přiblížit? Díky
Pokud jste nebrali ord a chr, tak možná inc a succ. Nepíšeš, jaký pascal používáte, ale toto by snad mělo fungovat všude:
var
i: integer;
s: string;
max: char;
begin
readln(s);
max := #0;
for i := 1 to length(s) do begin
if (s[i] >= 'a') and (s[i] <= 'z') and (s[i] > max) then
max := s[i];
end;
write(s);
if max <> #0 then write(succ(max));
writeln;
end.
Mozna by bylo casove rychlejsi porovnat, zda je znak>max a az pak vyhodnocovat, zda je to pismenko.
Nebo dat jako vychozi max='a' a pak porovnat znak>max and znak<'z'. Bude tam o jedno if mene.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Test na nalezení písmene v řetězci — založil oxidián
[C#] Nalezení znaku ve stringu — založil MartiniBaby
Formátování textu po nalezení konkrétního znaku — založil dragon124
Nahrazení znaku v řetězci — založil Jakub
četnost znaků v řetězci — založil Petr Schenk
Moderátoři diskuze