Turbo Pascal - pomoc s CASE - VYRIESENE

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod thejackass 10. 1. 2008 16:31

Pls potrebujem poradit:
Chcem zo vstupneho stringu pomocou POLA a CASE zistit, kolkokrat sa nachadzaju urcene znaky(napr. m,s...).
Diky
Naposledy upravil thejackass dne 14. 1. 2008 16:23, celkově upraveno 1
thejackass
Kolemjdoucí

Odeslat příspěvekod Noclaf 10. 1. 2008 18:00

IMHO na to nepotrebujes case.

i=length(retezec) (length ta funkce co vrati delku retezce)
for a= 1 to i begin
if retezec[a]="m" OR retezec[a]="M" then inc(pocitadlo)
end

Case na to vubec nepotrebujes. Velke/male obecne lze osetrit bud upcasem celeho retezce (pred tou smyckou zavolas smycku co po znaku poupcasuje cely retezec), nebo tim, ze velke pismena maji v ASCII tabulce konstantni odstup od malych, takze velke = male+konstanta
SI ALTERUM SIT OPTANDUM, MALIM EQUIDEM INDISERTAM PRUDENTIAM QUAM STULTITIAM LOQUACEM
Merida AM 3000D 2008 + Sigma Sport Mirage EVO X;
Noclaf
Junior
Uživatelský avatar

Odeslat příspěvekod thejackass 10. 1. 2008 18:05

WERY THX, ale ja by som to chcel urobit s CASE, aspon sa priucim k tomu....;)
thejackass
Kolemjdoucí

Odeslat příspěvekod Noclaf 10. 1. 2008 19:45

v tom pripade
...
for a= 1 to i begin
retezec[a]:=upcase(retezec[a])
if retezec[a]="M" then inc(pocitadlo)
...
SI ALTERUM SIT OPTANDUM, MALIM EQUIDEM INDISERTAM PRUDENTIAM QUAM STULTITIAM LOQUACEM
Merida AM 3000D 2008 + Sigma Sport Mirage EVO X;
Noclaf
Junior
Uživatelský avatar

Odeslat příspěvekod vtech 10. 1. 2008 22:30

thejackass píše:WERY THX, ale ja by som to chcel urobit s CASE, aspon sa priucim k tomu....;)


mcount:=0;
scount:=0;
for i:=1 to Length(s) do
case upcase(s[i]) of
'M':Inc(mcount);
'S':Inc(scount);
end;

to myslis?
Most people eat junk food, watch junk movies and listen to junk music. I don't see any reason for an operating system, to be an exception.
vtech
Junior
Uživatelský avatar

Odeslat příspěvekod thejackass 13. 1. 2008 20:18

vtech píše:
mcount:=0;
scount:=0;
for i:=1 to Length(s) do
case upcase(s[i]) of
'M':Inc(mcount);
'S':Inc(scount);
end;


to myslis?


Asi to bude ono.
Mohol by si mi s tym trochu pomoct???
Ne vsetkemu zatail chapem.
Viem ze:
mcount, scount je to pocitadlo,
for i:= 1 to length(mojtext) do
case upcase(mojtext[pole]) = ako mam zadeklarovat to pole, a ako ho mam pouzit v tom programe??? (BTW, polia su moj problem...|
thejackass
Kolemjdoucí

Odeslat příspěvekod Noclaf 13. 1. 2008 22:24

To neni pole. Na konkretni znak stringu se muzes odkazovat pomoci hranatych zavorek. Je to obycejny string.
SI ALTERUM SIT OPTANDUM, MALIM EQUIDEM INDISERTAM PRUDENTIAM QUAM STULTITIAM LOQUACEM
Merida AM 3000D 2008 + Sigma Sport Mirage EVO X;
Noclaf
Junior
Uživatelský avatar

Odeslat příspěvekod vtech 14. 1. 2008 01:45

Mozna by to chtelo uplne na zacatek. Upresni zadani. Neni mi jasne, na co chces pole? Na pocty jednotlivych znaku?
Most people eat junk food, watch junk movies and listen to junk music. I don't see any reason for an operating system, to be an exception.
vtech
Junior
Uživatelský avatar

Odeslat příspěvekod thejackass 14. 1. 2008 14:34

Noclaf: ja presne neviem, polia mi absolutne nejdu, ale diky
vtech: zadanie?:
Princip: - program: zo vstupneho textu(podmienka max. 80 znakov{to uz mam}) , treba pomocou pola a case zistit, kolko krat sa nachadza dany znak{pisem to takto, aby som to pochopil vseobecne} ...
Ten vstupny text je typu string, a ostatne premenne asi typu byte, a to pole neviem....
Niesom si isty, ci som tiez spravne deklaroval premenne...
thejackass
Kolemjdoucí

Odeslat příspěvekod Justik 14. 1. 2008 15:16

Proc to delat jednoduse, kdyz to jde slozite....

Schematicky zapsano:
1) Nactu znak z
2) Zjistim jeho ascii kod kod=ASCII(z)
3) Inkrementuji pole[kod] o hodnotu 1
4) Vytisknu prvky pole s hodnotou >0
5) Nepotrebuju zadne case
6) Musim si k tomu najit tabulku ASCII znaku
7) Musim se kouknout na elementarni zaklady Pascalu :-)
8] Ukoly na zapocet delam v prubehu semestru :-)
Justik
Junior

Odeslat příspěvekod thejackass 14. 1. 2008 15:38

OMG, to je na mna moc pokrocile, pochop trochu, ze som len lama zaciatocnik, ja to ale chcem spravit s CASE a polom, to co vtech pisal, bolo najblizsie k tomu, co potrebujem...
...len to este neviem spracovat...
thejackass
Kolemjdoucí

Odeslat příspěvekod Noclaf 14. 1. 2008 16:14

thejackass Ja ti nepokladal otazku, ja ti to oznamoval. Mam pocit, ze ani sam nevis co chces, natoz abys chapal, co ti tu radime. :( Ja, vtech i Justik se ti tu snazime pomoct, ale pripada mi, ze nechapes ani zaklady Pascalu...

Pred pokladanim dalsich dotazu bych doporucil napriklad:
http://programujte.com/index.php?akce=c ... al-1-lekce
http://pascal.webz.cz/index.php?part=kurs
atp.
SI ALTERUM SIT OPTANDUM, MALIM EQUIDEM INDISERTAM PRUDENTIAM QUAM STULTITIAM LOQUACEM
Merida AM 3000D 2008 + Sigma Sport Mirage EVO X;
Noclaf
Junior
Uživatelský avatar

Odeslat příspěvekod thejackass 14. 1. 2008 16:22

Cas sa pohol a ja som uz tu pracu vdaka vam uspesne dokoncil!!!
Viem, ze to vyzera, akoby som nechapal ani zaklady, ale v pascale som celkom davno neprogramoval a len tak zrazu prislo toto...
Mimo temy:
BTW, zacal som programovat vo VB.NET, ale podla toho, co som pocul(cital) sa mi oplati skor ucit sa jazyk C#... ...naozaj???
thejackass
Kolemjdoucí

Odeslat příspěvekod Nargon 14. 1. 2008 16:28

Jestli neumis ani VB.NET a ani C# tak radsi jdi rovnou do C#.
Ale jestli umis delat ve VB, tak je pro tebe jednoduzsi jit do VB.NET
Desktop: Ryzen 7 1800X (3.95GHz, 1.35V), Asus Crosshair VI Hero, 16GB DDR4 Ram (3200MHz), 128GB SSD + 3TB HDD, Nvidia GTX 1080
Notebook: Asus UL50VT 15.6" (SU7300@1.7GHz, 4GB ram, 500GB HDD, Intel GMA 4500MHD + nVidia G210M, dlouha vydrz cca 7+ hod)
Nargon
Moderátor

Odeslat příspěvekod thejackass 14. 1. 2008 16:45

Z VB.NET uz viem syntaxu, ale vela ludi v nom uz prestava robit, lebo C# je lepsi a perspektivnejsi.
Mozno to je jednoduchsie, ale nebude to skoda?
thejackass
Kolemjdoucí

Další stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků