Znakový datový typ v prezentaci Pascal. Prezentace na téma Řetězce v Pascalu




Syntaxe: var s: string[n]; var s1: řetězec; n - maximální možná délka řetězce - celé číslo v rozsahu. Pokud je tento parametr vynechán, je standardně nastaven na 255.


Řetězcové konstanty se zapisují jako sekvence znaků oddělené apostrofy. S: = "Textový řetězec"


Prázdný znak je označen dvěma po sobě jdoucími apostrofy. Pokud je apostrof součástí řádku jako znak, pak se při zápisu zdvojnásobí. Proměnné deklarované jako řetězce s různou maximální délkou mohou být přiřazeny k sobě navzájem, i když pokud se pokusíte přiřadit krátkou proměnnou k dlouhé, další znaky budou zahozeny. Výrazy typu char lze přiřadit libovolným řetězcovým proměnným.


Pascal poskytuje snadný přístup k jednotlivým znakům řetězcové proměnné: i-tá postava proměnná st se zapisuje jako st[i]. Pokud je například st "String", potom st je "C", st je "t", st je "p" a tak dále.


Operace slučování (slučování) je definována na řetězcových datech, označených znaménkem +. Například: a:= "Turbo"; b:= "Pascal"; c:= a + b; V tomto příkladu se proměnná c stane "TurboPascal".


Procedury a funkce pro práci s řetězci 1)n:= length("Pascal"); (n bude rovno 6) 2) s:= "Turbo Pascal system"; s2:= kopie(y, 1, 7); (s2 se bude rovnat "Systém") s3:= copy(s, 9, 5); (s3 se bude rovnat "Turbo") s4:= copy(s, 15, 6); (s4 se bude rovnat "Pascal")

Prezentace na téma "Strings in Pascal" v informatice v formátu powerpoint. Tato prezentace pro školáky 10. tříd pojednává o teoretickém materiálu a úlohách na téma řetězcová data v programovacím jazyce Pascal. Autor prezentace: učitel informatiky, Yudin A.B.

Fragmenty z prezentace

Teorie

  • Řetězec je pole znaků, tzn. prvky typu char. V Pascalu má řetězec datový typ String.
  • Pokud není zadána délka, je paměť přidělena pro řetězec o délce až 255 znaků.
  • Úkol 1. Vytvořte program, který počítá počet písmen ve slově.
  • Úkol 2. Porovnejte délku dvou řádků zadaných z klávesnice.

Funkce Soru

  • Funkce Copy(S, P, N) extrahuje podřetězec N znaků z řetězce S počínaje pozicí P. Zde N a P jsou celočíselné výrazy.
  • Úkol 3. Vytvořte program, který vyřízne písmena ze slova POČÍTAČOVÁ VĚDA tak, aby z nich vzniklo slovo CAKE.
  • Úkol 4. Napište program, který vytiskne první a poslední číslici přirozeného čísla zadaného z klávesnice.

Postup VAL

Procedura val umožňuje převést digitální znaky (obrázek čísla) na číslo. V obecný pohled volání procedury vypadá takto:

  • VAL (řetězec, číslo, kód) ;
  • kde String je řetězcová konstanta nebo proměnná obsahující obraz čísla;
  • Číslo – proměnná celočíselného nebo zlomkového typu, které musí být přiřazena hodnota
  • Kód – kód chyby vrácený procedurou (celé číslo)

Převod typu

PascalABC má pokročilejší arzenál transformací jako DELPHI:

  • S:=IntToStr(N) - převede celé číslo na řetězec;
  • n:=StrToInt(S) - převede řetězec na celé číslo
  • S:=FloatToStr(r) - převede reálné číslo na řetězec
  • R:=StrToFloat(s) převede řetězec na reálné číslo.

Pokud převod není možný, dojde k chybě běhu

Funkce ORD a CHR

  • Funkce Ord(S) – určuje pořadové číslo symbolu.
  • Funkce Chr(i) – určuje znak s pořadovým číslem i

Úkol 6. Vytvořte program, který na základě znaku zadaného z klávesnice zobrazí jeho číslo v tabulce kódů.

Počítání znaků v řetězci

Úloha 7. Je dán řetězec znaků. Určete, kolikrát se v něm objeví písmeno A (ruština).

Nahrazení znaků v řetězci

Úloha 8. Je dán řetězec znaků. Nahraďte všechna písmena A v něm písmenem O.

Odstranění znaků z řetězce

Úkol 9 Odstraňte všechna písmena R (latinka, velká) z řetězce zadaného z klávesnice.

Vnořené podmínky

Úkol 10. V daném textu, všude v daném textu nahraďte písmeno „a“ písmenem „b“ a písmeno „b“ písmenem „a“.

Vnořené smyčky

Problém 11. Je dán řetězec znaků obsahující interpunkční znaménka. Spočítejte, co a kolik interpunkčních znamének obsahuje řádek.


























Povolit efekty

1 z 26

Zakázat efekty

Zobrazit podobné

Vložit kód

V kontaktu s

Spolužáci

Telegram

Recenze

Přidejte svou recenzi


Snímek 1

Snímek 2

Řetězec je pole znaků, tzn. prvky typu char. V Pascalu má řetězec datový typ String. varName: string [Length]; Pokud není zadána délka, je paměť přidělena pro řetězec o délce až 255 znaků. Teorie 1 var s1:string; řetězec 255 znaků var s2:string; řetězec 20 znaků

Snímek 3

Pravidla: řetězce jsou si rovny, pouze pokud mají stejnou sadu znaků a stejnou délku; Například: "ABC"="ABC" a "ABC"≠"abc" jinak dojde k porovnání znaků podle jejich kódů prvek po prvku: "0"

Snímek 4

Teorie 3 Spojení dvou řetězců. s1:="2011" + "rok"; Writeln(s1); s1:="10"; s2:="třída"; s3:=s1+" "+s2; Writeln(s3);

Snímek 5

Délka funkce Funkce Length(S) určuje aktuální délku řetězce S. Výsledkem je celočíselná hodnota. Teorie 4 PROGRAM Délka_1; VAR S: STRING; n:INTEGER; BEGIN Writeln('enterword "); Readln(S); n:= Délka (S) ; Writeln('enterword ", n:5, " písmena.."); KONEC. Délku řetězce zapíšeme do proměnné celočíselného typu PROGRAM Dlina_2; VAR S: STRING; BEGIN Writeln('zadejte slovo'); Readln(S); Writeln('slovo se skládá z ', délka (S), 'písmena. '); KONEC. Zobrazíme délku řetězce jako výsledek provedení funkce Úkol 1. Vytvořte program, který spočítá počet písmen ve slově.

Snímek 6

Usescrt; var a,b:string; m,n: celé číslo; Begin Clrscr; Writeln("Zadejte první řádek");Readln(a); Writeln("Zadejte druhý řádek "); Readln(b); m:=délka(a); n:=Délka(b); if (m=n) then writeln("Řetězce se rovnají"); if (m>n) then writeln("Prvni je vetsi"); pokud (m

Snímek 7

Funkce Soru Funkce Soru (S, P, N) extrahuje z řetězce S podřetězec dlouhých N znaků, počínaje pozicí P. Zde N a P jsou celočíselné výrazy. Teorie 6 Ve frázi MATKA NAMYDLENÁ RAMU začíná slovo RAMU 11. písmenem a skládá se ze 4 písmen COPY(s1,11,4)

Snímek 8

Úkol 3. Program n3_1; Usescrt; var a,b,c,d:string; Begin Clrscr; a:="informatika"; b:=""; c:=copy(a,8,1); d:=copy(a,4,2); b:=c+d+c; writeln(b); Konec. Úkol na skládání řetězců 7 Využijeme funkce práce se symbolickými proměnnými COPY Druhá možnost: Program n3_2; Usescrt; var a,b:string; Begin Clrscr; a:=‘informatika"; b:=a+a+a+a; writeln(b); End. Definici řetězce používáme jako pole znaků

Snímek 9

Převod typu 8 Funkce STR Str(x, S) převede číslo x na formát řetězce. Kde x je libovolný číselný výraz, S je řetězcová proměnná. Úkol 4. Napište program, který vytiskne první a poslední číslici přirozeného čísla zadaného z klávesnice. PROGRAM Primer; používá Crt; VAR S: STRING; n:INTEGER; BEGIN Write("Zadejte číslo ");readln(n); Str(n,S); Writeln("První číslice -",S); Writeln("Poslední číslice je ",S); KONEC. Převeďte přirozené číslo na řetězec

Snímek 10

Procedura val umožňuje převést digitální znaky (obrázek čísla) na číslo. Obecně volání procedury vypadá takto: VAL (String, Number, Code) ; kde String je řetězcová konstanta nebo proměnná obsahující obraz čísla; Číslo – proměnná typu celé číslo nebo zlomek, které musí být přiřazena hodnota Kód – kód chyby vrácený procedurou (celé číslo) Převod typu 9 Procedura VAL

Snímek 11

Převod typu 10 BEGIN s1:="123456789"; val(s1,n,kód); Writeln(n); KONEC. BEGIN s1:="123456789ABCDE"; val(s1,n,kód); Writeln(n); KONEC.

Snímek 12

s1:="ABCDE123456789"; val(s1,n,kód); Writeln(n); PascalABC má pokročilejší arzenál transformací, jako DELPHI: S:=IntToStr(N) - převede celé číslo na řetězec; n:=StrToInt(S) - převede řetězec na celé číslo S:=FloatToStr(r) - převede reálné číslo na řetězec R:=StrToFloat(s) převede řetězec na reálné číslo. Pokud převod není možný, dojde k chybě za běhu Type Conversion 11

Snímek 13

Převod typů 12 Problém 5.

Snímek 14

Symboly a jejich kódy 13 Funkce ORD a CHR Funkce Ord(S) – určuje pořadové číslo symbolu. Funkce Chr(i) – určuje znak s pořadovým číslem i Pomocí čísla 255 odvodíme znak z kódové tabulky I

Snímek 15

Symboly a jejich kódy 14 Úkol 6. Vytvořte program, který na základě symbolu zadaného z klávesnice zobrazí jeho číslo v tabulce kódů. PROGRAM Primer; používá Crt; VAR S: char; n,kód:INTEGER; BEGIN Write("Zadejte znak ");readln(s); Writeln("Symbol ", s," má kód -",ord(s)); KONEC. Funkce ORD funguje pouze se znakovým datovým typem

Snímek 16

Úloha 7. Program n5; UsesCrt; Var s:string; i,k:integer; beginClrScr; Write("IntoLine"); readln(s); k:=0; for i:=1 to length(s) do if (s[i]="A") then k:=k+1; writeln("Písmeno A se vyskytuje = ", k:8," krát"); konec. Opakujte od 1 do posledního písmene Pokud je A na i-tém místě, zvyšte K o 1 Počítání znaků na řádku 15

Snímek 17

Poznámka 16 pro i:=1 to length(s) dobegin if (s[i]=…… if (s[i]=…… end; Poznámka: Pokud potřebujete hledat několik znaků v řádku, pak přiložíme podmínky v závorkách programu ZAČÁTEK ... KONEC

Snímek 18

Počítání znaků v řádku 17 Začátek Vstup S i,1,délka(y) Si ="A" K=K+1 Výstup K Konec Ano Ne Vývojový diagram pro úlohu počítání písmen A v řádku K=0

Snímek 19

Nahrazení znaků v řádku 18 Problém 8.Program n6; UsesCrt; Var s:string; i:integer; beginClrScr; Write("IntoLine"); readln(s); for i:=1 to length(s)do if (s[i]="A") then s[i]:="O"; writeln(y); konec. Procházíme od 1 do posledního písmene. Pokud je na i-tém místě A, nasadíme ho i-té místo O.

Snímek 20

Nahrazení znaků v řádku 19 Začátek Vstup S i,1,délka(y) Si ="A" Si ="O" Výstup S Konec Ano Ne Vývojový diagram pro problém nahrazení písmene A O

Snímek 21

Úkol 9 Odstraňte všechna písmena R (latinka, velká) z řetězce zadaného z klávesnice. Program n7; UsesCrt; var a,b:String; i:integer; beginClrScr; Write("InLine = ");readln(a); b:=""; for i:=1 to length(a) doif (a[i]'R") pak b:=b+a[i]; a:=b; writeln(a); end. Iterujte od 1 k poslednímu písmenu Připravte další proměnnou Pokud na i-tém místě není R, pak toto písmeno přidáme k tomu, co je v B. To, co se stalo v B, se přesune zpět do A. Odebrání znaků z řetězce 20

Snímek 22

Odebrání znaků z řetězce 21 Začátek Vstup A i,1,délka(A) Ai "R" B=B+ Ai Výstup A Konec Ano Ne Vývojový diagram problému odstranění písmen R z řetězce B="" A=B

Snímek 23

Vnořené podmínky. 22 začít clRscr; Readln(y); for i:=1 to length(s) do if (s[i]="a") nebo (s[i]="b") then if (s[i]="a") then s[i] :="b" else s[i]:="a"; writeln(y); konec. Úloha 10. Z celého řetězce musíme vybrat pouze A a B a teprve potom provést výměnu

Snímek 24

Vnořené podmínky 23 Začátek Vstup S i, 1, délka(S) Si ="a" Si ="b" Si ="a" Výstup S Konec Si ="a" nebo Si ="b" Ano Ne Ano Ne Blokový diagram do problém nahrazení A za B a naopak

Snímek 25

Vnořené smyčky 24 begin ClrScr; Write("IntoLine"); readln(s); s1:=",.;:"!?-"; pro i:=1 na délku(s1) začněte k:=0; pro j:=1 na délku(y) proveďte if (s[j]=s1 [i]) pak k:=k+1; if (k0) then writeln(s1[i]," - ",k:5," krát"); konec; konec. Úloha 11. Vnější smyčka vyjmenovávající znaky zapsané v S1 Tělo vnější smyčky obsahuje smyčku odpovědnou za výčet znaků zadaného řetězce

Snímek 26

Vnořené smyčky 25 Start Vstup S i, 1, délka(S1) s1=",.;:"!?-" K=0 j, 1, délka(S) Sj = S1i Ano Ne K=K+1 K0 Výstup S1i ,K Ne Ano Konec vývojového diagramu pro problém počítání interpunkčních znamének

Zobrazit všechny snímky

Abstraktní

�STRÁNKA � �STRÁNKA �1�

Blok 1.

Teorie.

Snímek 1

Snímek 2

Snímek 3.

Snímek 4

Snímek 5. Řešení problému bylo analyzováno:

Snímek 6.

Snímek 7.

Vytvořte program, který vystřihne písmena ze slova COMPUTER SCIENCE tak, aby z nich vzniklo slovo CAKE.

Blok 2

Je dán řetězec znaků a1+a2=. Kde 1<=а1 и а2<=9. Составить программу, вычисляющую это выражение. Измените программу так, что бы вместо знака «+» можно было писать « - », « * », « / ».

Problémy pro dodatečné řešení:

<=аi<=9). Составить программу, вычисляющую эту сумму.

<=аi<=9). Составить программу, вычисляющую эту алгебраическую сумму.

Blok 3.

Blok 4.

Daný řetězec znaků. Určete, kolikrát se v něm objeví písmeno A (ruština).

Problémy pro dodatečné řešení:

Daný řetězec znaků. Určete, kolikrát se v něm objeví písmeno A (ruština).

Blok 5.

Daný řetězec znaků. Nahraďte všechna písmena A v něm písmenem O.

Problémy pro dodatečné řešení:

Blok 6.

Problémy pro dodatečné řešení:

Blok 7.

V uvedeném textu nahraďte všude písmeno „a“ písmenem „b“ a písmeno „b“ písmenem „a“.

Je dán řetězec znaků obsahující interpunkční znaménka. Spočítejte, co a kolik interpunkčních znamének obsahuje řádek.

Problémy pro dodatečné řešení:

�STRÁNKA � �STRÁNKA �1�

Popis prezentace „Strings in Pascal“

Tuto prezentaci lze využít při studiu tématu „Řetězce v programovacím jazyce Pascal“ při výuce programování v jazyce Pascal. Pojednává o definici a popisu řetězcové proměnné, funkcích pro práci s řetězci a také zkoumá několik typických úloh při práci s řetězci. Prezentace obsahuje 24 snímků, spojených do 7 bloků.

Stručná navigace ve snímcích a doplňkové úkoly, které mohou studenti samostatně vyřešit:

Blok 1.

Teorie.

Snímek 1 . Definice řetězcové proměnné je uvedena, stejně jako způsob popisu v části popisu proměnné.

Snímek 2 . Jsou ukázána pravidla pro porovnávání řetězců v jazyce Pascal a dva příklady ilustrující tato pravidla.

Snímek 3. Jsou uvedeny příklady spojení více řádků do jednoho.

Snímek 4 . Je uvedena definice funkce Length(). A jsou analyzována dvě řešení problému:

Napište program na počítání počtu písmen ve slově.

První metoda pomocí operace přiřazení přiřadí počet znaků v řetězci proměnné celočíselného typu a zobrazí ji na obrazovce. Ve druhé metodě je funkce Length() vložena přímo do příkazu Writeln.

Snímek 5. Řešení problému bylo analyzováno:

Porovnejte délku dvou řetězců zadaných z klávesnice.

V něm je potřeba určit délku dvou řetězců a pomocí operátoru větvení porovnat délky těchto řetězců.

Snímek 6. Je uvedena definice funkce Copy(). Snímek obrazovky ukazuje příklad fungování této funkce s potřebnými komentáři.

Snímek 7. Jsou zobrazeny dva způsoby, jak problém vyřešit:

Vytvořte program, který vystřihne písmena ze slova COMPUTER SCIENCE tak, aby z nich vzniklo slovo CAKE.

V prvním případě se řezání provádí pomocí funkce Kopírovat a ve druhém pomocí reprezentace řetězce jako pole znaků.

Problémy pro dodatečné řešení:

Napište program, který se zeptá na jméno osoby a zobrazí je na obrazovce s pozdravem.

Napište program, který požaduje jméno a příjmení osoby a zobrazí je na jednom řádku s pozdravem.

Z klávesnice se zadávají dva řádky, určují, který je delší a o kolik, a na obrazovce se zobrazí odpovídající zpráva.

Řetězec znaků se zadává z klávesnice, zobrazte znak na k-tém místě. k – zadává se z klávesnice.

Slovo se zadává z klávesnice, je správné, že začíná a končí stejným písmenem?

Jsou dána dvě slova. Je pravda, že první slovo končí stejným písmenem jako druhé?

Získejte od slova "INTEGRAL" slova "DUMBELLS", "X-RAY", "TYGER", "AGENT".

Vytvořte program, který zkontroluje pravopis předpon raz- a ras- ve slově zadaném z klávesnice a v případě potřeby chybu opraví.

Blok 2

Typ převodních funkcí.

Snímek 8. Je uveden popis procedury Srt(). Řešení problému je analyzováno:

Napište program, který vytiskne první a poslední číslici přirozeného čísla zadaného z klávesnice.

V něm se přirozené číslo pomocí procedury Str() převede na řetězec a poté se na obrazovce zobrazí první a poslední znak. Zde je bezpodmínečně nutné studentům sdělit, že tato metoda není vhodná pro každý případ, např. v úlohách olympiády je často nastavena podmínka, že nelze použít znakový datový typ a/nebo přirozené číslo obsahuje více než 255 číslic atd. .

Snímek 9. Je uvedena definice procedury Val().

Snímek 10. Ukazuje příklady převodu různých řetězců obsahujících čísla na přirozené číslo.

Snímek 11. Ukazuje funkce pro převod číselných a znakových typů v programovacím systému PascalABC. To může být velmi užitečné, pokud plánujete v budoucnu přejít na učení Lazarus nebo Delphi.

Snímek 12. Řešení problému je zobrazeno:

Je dán řetězec znaků a1+a2=. Kde 1<=а1 и а2<=9. Составить программу, вычисляющую это выражение. Измените программу так, что бы вместо знака «+» можно было писать « - », « * », « / ».

Zvažuje nejjednodušší případ, kdy se akce provádějí se dvěma přirozenými jednocifernými čísly. V budoucnu, v závislosti na úrovni studentů, může být tento úkol stále obtížnější. Sčítání víceciferných čísel, záporných čísel, umocňování, závorky a zakončení např. výpočtem nebo převodem polského zápisu.

Problémy pro dodatečné řešení:

Je dán řetězec představující desítkový zápis kladného celého čísla. Vytiskněte řetězec představující binární reprezentaci stejného čísla.

Je dán řetězec představující kladné celé číslo. Najděte součet číslic tohoto čísla.

Je dán text ve tvaru a1+a2 +a3+…+ai. Kde ai jsou celá čísla (0<=аi<=9). Составить программу, вычисляющую эту сумму.

Je dán text, který má tvar a1 - a2 + a3 - ... + ai. Kde ai jsou celá čísla (0<=аi<=9). Составить программу, вычисляющую эту алгебраическую сумму.

Číslo je uvedeno v šestnáctkové soustavě čísel. Vytiskněte řádek představující desetinný zápis stejného čísla.

Je dán řetězec představující binární reprezentaci kladného celého čísla. Vytiskněte řádek představující desetinný zápis stejného čísla.

Blok 3.

Funkce pro práci s kódy znaků.

Snímek 13. Jsou definovány funkce ORD a CHR. Zobrazí se snímek obrazovky programu ilustrující fungování funkce Chr.

Snímek 14. Řešení problému je zobrazeno:

Napište program, který na základě znaku zadaného z klávesnice zobrazí jeho číslo v tabulce kódů.

Zde je nutné upozornit, že funkce Ord pracuje pouze s datovým typem znak (char). Protože studenti velmi často nechápou rozdíl mezi typy znaků a řetězců.

Blok 4.

Problémy s počítáním něčeho v řádku.

Snímek 15. Řešení problému je zobrazeno:

Daný řetězec znaků. Určete, kolikrát se v něm objeví písmeno A (ruština).

Tento problém ilustruje způsob hledání znaků v řetězci. Nutno podotknout, že pro hledání řetězce v řetězci je vhodnější použít funkci Kopírovat.

Snímek 16. Obsahuje připomenutí, že pokud potřebujete vyhledat několik znaků v řádku, pak podmínky uzavřeme do závorek programu ZAČÁTEK ... KONEC

Snímek 17. Je zobrazen vývojový diagram úlohy ze snímku 15.

Problémy pro dodatečné řešení:

Daný řetězec znaků. Určete, kolikrát se v něm objeví písmeno A (ruština).

Je-li daný řetězec představující algebraický výraz, zkontrolujte v něm párování závorek. Zobrazit výsledek na obrazovce.

Text je uveden. Určete, kolik stejných sousedních písmen obsahuje.

Text je uveden. Určete počet slov ve větě.

Text je uveden. Určete, kterých písmen M nebo N je v něm více.

Text je uveden. Určete, kolik slov v tomto textu začíná písmenem A.

Je dán řetězec znaků obsahující dvojtečku (:). Určete, kolik znaků mu předchází.

Daný řetězec znaků. Určete, kolikrát je v něm zahrnuta skupina písmen ABC.

Text je uveden. Obsahuje minimálně dvě písmena K. Určete pořadová čísla prvního a posledního písmene K.

Text je uveden. Určete, které z písmen C nebo T se objeví jako první.

Text je uveden. Určete počet písmen N před první čárkou ve větě.

Je uveden text obsahující dvě čárky. Spočítejte počet znaků umístěných mezi těmito čárkami.

Blok 5.

Úkoly pro změnu znaků v řetězci bez změny jeho délky.

Snímek 18. Řešení problému je zobrazeno:

Daný řetězec znaků. Nahraďte všechna písmena A v něm písmenem O.

Tento problém ukazuje, jak můžete změnit řetězec, aniž byste změnili jeho délku.

Snímek 19. Je zobrazen vývojový diagram úlohy ze snímku 18.

Problémy pro dodatečné řešení:

Daný řetězec znaků. Nahraďte všechna písmena na sudých místech písmenem O.

Daný řetězec znaků. Kombinaci písmen "min" nahraďte v daném textu "max".

Daný řetězec znaků. Všechny mezery v něm nahraďte znakem „_“.

Najděte první a poslední písmeno K v textu zadaném z klávesnice. A nahraďte je "*".

Vytvořte program, který opraví pravopis „ZHI“ a „SHI“ ve slově zadaném z klávesnice.

Blok 6.

Úkoly související se změnou délky čáry.

Snímek 20. Řešení problému je zobrazeno:

Odstraňte všechna písmena R (latinka, velká) z řetězce zadaného z klávesnice.

Tato úloha ukazuje, jak se řetězec mění při změně jeho délky.

Snímek 21. Je zobrazen vývojový diagram úlohy ze snímku 20.

Problémy pro dodatečné řešení:

Odstraňte všechna písmena A (latinka, velká) z řetězce zadaného z klávesnice.

Slovo bylo dáno. Zkontrolujte, zda se nejedná o řazení. To znamená, že se to čte stejně od konce i od začátku. (Například: ANNA, SHALASH.)

V daném slově nahraďte každé písmeno „b“ kombinací písmen „ku“.

Napište program, který odstraní všechna písmena z daného textu. (Zadejte text a písmeno z klávesnice).

Pro návrh nadpisů a logicky důležitých slov se textové znaky střídají s mezerami. Napište program, který takovou operaci provede.

Z tohoto textu odstraňte všechna písmena „C“, která předcházejí písmenu „T“.

Za každé písmeno P vložte tři vykřičníky „!!!“.

Blok 7.

Problémy s vnořenými větvemi a smyčkami.

Snímek 22. Řešení problému je zobrazeno:

V uvedeném textu nahraďte všude písmeno „a“ písmenem „b“ a písmeno „b“ písmenem „a“.

Přímé řešení tohoto problému „čelem“ nepřináší výsledky. Zde je třeba vybrat pouze potřebná písmena, aby se zbytek nezměnil. A pak, v závislosti na tom, které písmeno se najde, proveďte náhradu pomocí úplného stavu.

Snímek 23. Je zobrazen vývojový diagram úlohy ze snímku 22.

Snímek 24. Řešení problému je zobrazeno:

Je dán řetězec znaků obsahující interpunkční znaménka. Spočítejte, co a kolik interpunkčních znamének obsahuje řádek.

Tento problém ukazuje příklad použití vnořených smyček k porovnání dvou řetězců. Tento problém je možné řešit pomocí velkého množství podmínek, ale takové řešení podle mého názoru nebude racionální.

Problémy pro dodatečné řešení:

Daný řetězec znaků (ruština). Určete počet samohlásek v tomto řádku.

Daný řetězec znaků (anglicky). Určete, které a kolik samohlásek řádek obsahuje.

Daný řetězec znaků. Určete, které znaky mají více samohlásek nebo souhlásek.

Jsou dány dva řetězce A a B. Určete, zda je možné z písmen řetězce A vytvořit řetězec B. Každé písmeno lze navíc použít jednou. Písmena lze přeskupit. (Například: můžete získat AGENT od INTEGRAL, ale ne GRAPH).

Text je uveden. Určete, která má více čísel nebo písmen.

Jsou uvedeny dva řádky. Spočítejte a zobrazte počet běžných písmen. (Písmena objevující se v prvním a druhém řádku).

Z daného textu vyberte a zobrazte ty znaky, které se v něm vyskytují právě jednou.

Aby Eustace varoval před selháním operace, přišel s následujícím způsobem upozornění. Odešle telegram, jehož text obsahuje znaky „b“, „e“, „d“, „a“, nutně v tomto pořadí, ale ne nutně v řadě. Vytvořte program, který vám umožní určit, zda odeslaný text je oznámením o selhání nebo ne.

Pro upevnění tématu je třeba vyřešit co nejvíce problémů. Jejich počet přímo závisí na počtu hodin určených na studium daného tématu a kurzu programování jako celku.

Podle mého názoru jsou nejúspěšnější knihy problémů s programováním:

Sbírka programovacích problémů. 2. vydání. Autor D.M. Zlatopolský. Vydáno v Petrohradě "BHV-Petersburg" v roce 2007.

Elektronická verze Příručky programování verze 4.6. Autor M.E.Abramyan. Distribuováno s programovacím systémem Pascal ABC.

Prezentují problémy všech témat kurzu programování.

Na základě těchto knih a některých dalších zdrojů jsem vytvořil vlastní mini knihu problémů, která rozdělila problémy do tří skupin obtížnosti A, B a C.

http://privples.iv-edu.ru/informatica/1/Mater/SBORNIK_ZADAS.doc

Stáhnout abstrakt

Chcete-li používat náhledy prezentací, vytvořte si účet Google a přihlaste se k němu: https://accounts.google.com


Popisky snímků:

Textové a znakové datové typy Pascal Prezentaci připravila učitelka informatiky Tatyana Petrovna Kareva MBOU Gymnázium č. 6 Mezhdurechensk, Kemerovo Region

Počítačové stroje se zabývají více než jen čísly. Téměř více času tráví zpracováním textu. Pascal má pro to speciální datový typ, nazvaný CHAR (od slova znak). Zadejte CHAR (znak nebo řetězec nebo literál). Jeho významy jsou jednotlivé znaky: písmena, čísla, znaky. Znakové konstanty jsou uzavřeny v uvozovkách, například 'A', 'B', 'C', '4', '7', ' '(mezera). Znakové proměnné jsou popsány klauzulí Var název proměnné: char ;

Hodnoty znaků lze zadávat a vydávat, přiřazovat a porovnávat. Níže je uveden příklad provedení všech těchto kroků. Var x, y: char; Begin Write(‘ Zadejte znak ‘); readln(x); Y:='A'; Pokud x

Symboly je možné porovnávat díky tomu, že jsou uloženy v paměti počítače jako celá čísla (znakové kódy). Ze dvou symbolů se za větší považuje ten, jehož kód je větší. Znaky jsou seřazeny následovně: ' A '=,.

Standardní symbolické funkce. Pascal má standardní symbolické funkce: CHR (N) – vrací do programu symbol s kódem N, ORD (S) – vrací kód symbolu S, PRED (S) – vrací předchozí symbol SUCC (S) – vrací další symbol PŘÍKLADY: CHR ( 128) = B ORD (':') = 58 PRED(' B ') = A SUCC(' G ') = D

Každý znak má svůj vlastní unikátní binární kód. Kódy všech symbolů jsou shrnuty v tabulce. První polovina tabulky se stala mezinárodním standardem s názvem ASCII - American Standard Code Information Interchange (čteno jako „ask code“), mimo jiné obsahuje latinku, druhá má různé možnosti pro různé jazyky. Cyrilice (ruská abeceda) má několik norem. Pascal používá standard KOI-8.

PŘÍKLAD použití proměnné typu znaku. Vytvořte program, ve kterém počítač opakovaně vypočítá součet A + B pro různé hodnoty A a B. Na konci každé fáze se objeví požadavek na pokračování nebo zastavení výpočtů: „Ukončit program? (A/N ).“ Var A, B: skutečné; C: char; Begin repeat Write(‘Zadejte dvě čísla’); Readln(a,b); Writeln(a + b:0:2); Writeln(‘Ukončit program?(A/N)’); Readln(c); Dokud c='D'; (program se ukončí, pokud je zadáno D) Readln End.

Tréninkové úkoly. 1. Co vrátí funkce CHR(ORD(X))? 2. Určete hodnoty následujících funkcí: CHR(68) ORD('d') PRED(1) SUCC(' I ') 3. Vytvořte program, ve kterém počítač najde součin lichých čísel, počínaje jeden a až na otázku položenou po každém kroku výpočtu: „Pokračovat ve výpočtech? (A/N)“, odpovězte „A“.

Pro zpracování větších textových jednotek – řetězců – byl zaveden datový typ nazvaný STRING. Hodnoty tohoto typu jsou řetězce libovolných znaků až do délky 255. Řetězcové proměnné musí být popsány klauzulí: Název VAR: STRING Řetězce lze přiřazovat, porovnávat, zadávat, vydávat a spojovat. Spojení je označeno znaménkem „+“. Zde jsou příklady některých porovnávacích operací s řetězci: "tabulka"

Mezi všemi možnými hodnotami řetězce je prázdný řetězec. Je reprezentován dvěma apostrofy (jednoduchými uvozovkami), mezi nimiž není nic. Chcete-li zadat tento znak do řetězce, musíte jej zopakovat dvakrát. Operátor write ("about""fenomenon") například zobrazí: "deklarace". Programátor má přístup k jednotlivým znakům řetězcové proměnné, k tomu je třeba kromě názvu proměnné uvést sériové číslo číslo znaku v řádku. Pokud je například popsána proměnná X:STRING, pak X je první znak řetězce, X je druhý atd. X má speciální roli - pro uložení délky řetězce . Hodnota X je znak, jehož kód se rovná počtu znaků v řetězci. K určení délky řetězcové proměnné se však obvykle používá funkce LENGTH(řetězcová proměnná). x); - N bude přiřazena hodnota rovnající se počtu znaků v řádku.

Při popisu řetězcové proměnné můžeme omezit délku řetězce zadáním jeho maximální možné velikosti, do řetězce se pak uloží pouze zadaný počet znaků. Var a,b:string ; begin write("zadejte slovo"); readln(a); napsat); readlnend. Pokud při provádění tohoto programu zadáte slovo KUKUŘICE, program vypíše COOK.

PAMATOVAT SI. Pokud během provádění programu potřebujete zadat hodnotu pro několik řetězcových proměnných, každá z nich musí mít svůj vlastní vstupní příkaz READLN. Například Var a,b,c:string ; začít readln(a); readln(b); readln(c); napsat(a+b+c); readlnend. Zkontrolujte, co se stane, když napíšete READLN(a,b,c); nebo READ(a,b,c).

Příklad 1. Vytvořte program, který určí, které ze dvou příjmení je delší. Příjmení mají různé délky. Var a,b:string ; začít readln(a); readln(b); if length(a)>length(b) then write(a) else write(b); readlnend.

Příklad 2. Jsou dána dvě slova. Napište program, který určí, zda je pravda, že první slovo začíná stejným písmenem jako končí druhé slovo. Var x,y:byte ; a,b:string ; začít readln(a); readln(b); x:=délka(b); (určíme délku slova b, abychom zjistili číslo posledního znaku) if a=b[x] tak napiš ("pravda") jinak napiš ("nesprávně"); readln end .

Tréninkové úkoly. 1. Je uveden název města. Určete, zda je počet znaků v něm sudý nebo lichý. 2. Slovo je dáno. Zobrazte jeho třetí znak a jeho poslední znak dvakrát. 3. Slovo je dáno. Je pravda, že začíná a končí stejným písmenem? 4. Slovo je dáno. Přijmout a zobrazit kombinaci písmen sestávající z jeho třetího a posledního znaku. 5. Vytvořte program, který požaduje název fotbalového týmu a zopakuje jej na obrazovce se slovy: „Toto je šampion!“

Pro práci s řetězcovými proměnnými v Pascalu existuje sada standardních procedur a funkcí. Jejich použití zjednodušuje řešení problémů. Rád bych připomněl, že výsledek provedení funkce musí být uložen v proměnné příslušného typu, pokud ovšem ona, funkce, není prvkem výrazu. Funkce pro kopírování řetězce nebo jeho části. S:=COPY(řetězec, pozice, N); Funkce kopírování se také nazývá "řezání". Výsledkem provedení funkce bude část řetězce začínající od zadané pozice délky N.

Příklad: Je podán návrh. Určete sériové číslo prvního nalezeného písmene "k". Pokud takový dopis neexistuje, nahlaste to. Var x: celé číslo; řetězec; begin write("Zadejte větu"); readln(a); x:=pos(" až ",a); jestliže x=0 pak writeln ("Takové písmeno neexistuje") else writeln (x); readlnend.

Postup pro smazání části řetězce DELETE(řádek, počáteční číslo, počet znaků) Odebere zadaný počet znaků ze zdrojového řetězce. Příklad: Dáno slovo sestávající ze sudého počtu písmen. Zobrazit jeho první polovinu. Var i,x:byte ; a,p:string ; začít opakovat zápis ("Zadejte slovo se sudým počtem písmen"); readln(a); x:=délka(a); (určíme délku slova) dokud (x mod 2 = 0); x:= x div 2; (použijte celočíselné dělení) delete (a,x+1,x); napsat); readln end .

Postup pro vložení podřetězce do řetězce INSERT(řádek1, řádek2, pozice); Řádek1 se vloží do řádku2 počínaje zadanou pozicí. Tréninkové úkoly. 1. Je podán návrh. Určete počet výskytů určitého symbolu. 2. Je podán návrh. Nahraďte všechny výskyty kombinace písmen „ah“ za „uh“. 3. Slovo je dáno. Zkontrolujte, zda se nejedná o „zvrat“, tzn. čte se stejně od začátku do konce. 4. Slovo je dáno: a. odstraňte z něj první písmeno „o“, pokud takové písmeno existuje; b. odstraňte z něj poslední písmeno "t", pokud takové písmeno existuje. 5. Je podán návrh. Odstraňte z něj všechna písmena "s".


Snímek 1

Snímek 2

Řetězec je pole znaků, tzn. prvky typu char. V Pascalu má řetězec datový typ String. var Jméno: string [Délka]; Pokud není zadána délka, je paměť přidělena pro řetězec o délce až 255 znaků. Teorie 1 var s1:string; řetězec 255 znaků var s2:string; řetězec 20 znaků

Snímek 3

Pravidla: řetězce jsou si rovny, pouze pokud mají stejnou sadu znaků a stejnou délku; Například: "ABC"="ABC" a "ABC"≠"abc" jinak dochází k porovnání znaků po jednotlivých prvcích podle jejich kódů: "0"

Snímek 4

Teorie 3 Spojení dvou řetězců. s1:="2011" + "rok"; Writeln(s1); s1:="10"; s2:="třída"; s3:=s1+" "+s2; Writeln(s3);

Snímek 5

Funkce Length Funkce Length(S) určuje aktuální délku řetězce S. Výsledkem je celočíselná hodnota. Teorie 4 PROGRAM Délka_1; VAR S: STRING; n:INTEGER; BEGIN Writeln('zadejte slovo "); Readln(S); n:= Délka (S) ; Writeln('zadejte slovo ", n:5, " lit.."); KONEC. Délku řetězce zapíšeme do proměnné celočíselného typu PROGRAM Dlina_2; VAR S: STRING; BEGIN Writeln('zadejte slovo') ; Readln(S); Writeln('slovo se skládá z ', Délka (S) ,'písmena.'); KONEC. Zobrazíme délku řetězce jako výsledek provedení funkce Úkol 1. Vytvořte program, který spočítá počet písmen ve slově.

Snímek 6

Usescrt; var a,b:string; m,n: celé číslo; Begin Clrscr; Writeln("Zadejte první řádek");Readln(a); Writeln("Zadejte druhý řádek "); Readln(b); m:=délka(a); n:=Délka(b); if (m=n) then writeln("Řádky jsou stejné"); if (m>n) then writeln("Prvni je vetsi"); pokud (m

Snímek 7

Funkce Soru Funkce Soru (S, P, N) extrahuje z řetězce S podřetězec dlouhých N znaků, počínaje pozicí P. Zde N a P jsou celočíselné výrazy. Teorie 6 Ve frázi MATKA NAMYDLENÁ RAMU začíná slovo RAMU 11. písmenem a skládá se ze 4 písmen COPY(s1,11,4)

Snímek 8

Úkol 3. Vytvořte program, který vyřízne písmena ze slova POČÍTAČOVÁ VĚDA tak, aby z nich vzniklo slovo CAKE. Program n3_1; Usescrt; var a,b,c,d:string; Begin Clrscr; a:="informatika"; b:=""; c:=copy(a,8,1); d:=copy(a,4,2); b:=c+d+c; writeln(b); Konec. Úkol na skládání řetězců 7 Využijeme funkce práce se symbolickými proměnnými COPY Druhá možnost: Program n3_2; Usescrt; var a,b:string; Begin Clrscr; a:=‘informatika"; b:=a+a+a+a; writeln(b); End. Definici řetězce používáme jako pole znaků

Snímek 9

Převod typu 8 Funkce STR Str(x, S) převede číslo x na formát řetězce. Kde x je libovolný číselný výraz, S je řetězcová proměnná. Úkol 4. Napište program, který vytiskne první a poslední číslici přirozeného čísla zadaného z klávesnice. PROGRAM Primer; používá Crt; VAR S: STRING; n:INTEGER; BEGIN Write("Zadejte číslo ");readln(n); Str(n,S); Writeln("První číslice -",S); Writeln("Poslední číslice je ",S); KONEC. Převeďte přirozené číslo na řetězec

Snímek 10

Procedura val umožňuje převést digitální znaky (obrázek čísla) na číslo. Obecně volání procedury vypadá takto: VAL (String, Number, Code) ; kde String je řetězcová konstanta nebo proměnná obsahující obraz čísla; Číslo – proměnná typu celé číslo nebo zlomek, které musí být přiřazena hodnota Kód – kód chyby vrácený procedurou (celé číslo) Převod typu 9 Procedura VAL

Snímek 11

Převod typu 10 BEGIN s1:="123456789"; val(s1,n,kód); Writeln(n); KONEC. BEGIN s1:="123456789ABCDE"; val(s1,n,kód); Writeln(n); KONEC.

Snímek 12

s1:="ABCDE123456789"; val(s1,n,kód); Writeln(n); PascalABC má rozvinutější arzenál transformací jako DELPHI: S:=IntToStr(N) - převede celé číslo na řetězec; n:=StrToInt(S) - převede řetězec na celé číslo S:=FloatToStr(r) - převede reálné číslo na řetězec R:=StrToFloat(s) převede řetězec na reálné číslo. Pokud převod není možný, dojde k chybě za běhu Type Conversion 11

Snímek 13

Snímek 14

Symboly a jejich kódy 13 Funkce ORD a CHR Funkce Ord(S) – určuje pořadové číslo symbolu. Funkce Chr(i) – určuje znak s pořadovým číslem i Pomocí čísla 255 odvodíme znak z kódové tabulky I

Snímek 15

Symboly a jejich kódy 14 Úkol 6. Vytvořte program, který na základě symbolu zadaného z klávesnice zobrazí jeho číslo v tabulce kódů. PROGRAM Primer; používá Crt; VAR S: char; n,kód:INTEGER; BEGIN Write("Zadejte znak ");readln(s); Writeln("Symbol ", s," má kód -",ord(s)); KONEC. Funkce ORD funguje pouze se znakovým datovým typem

Snímek 16

Úloha 7. Je dán řetězec znaků. Určete, kolikrát se v něm objeví písmeno A (ruština). Program n5; UsesCrt; Var s:string; i,k:integer; beginClrScr; Write("Zadejte řetězec"); readln(s); k:=0; for i:=1 to length(s) do if (s[i]="A") then k:=k+1; writeln("Písmeno A se vyskytuje = ", k:8," krát"); konec. Opakujte od 1 do posledního písmene Pokud je A na i-tém místě, zvyšte K o 1 Počítání znaků na řádku 15

Snímek 17

Poznámka 16 pro i:=1 až délka(y) do begin if (s[i]=…… if (s[i]=…… konec; Poznámka: Pokud potřebujete vyhledat několik znaků v řádku, pak podmínky uzavřete do programových závorek ZAČÁTEK...KONEC

Snímek 18

Počítání znaků v řádku 17 Začátek Vstup S i,1,délka(y) Si ="A" K=K+1 Výstup K Konec Ano Ne Vývojový diagram pro úlohu počítání písmen A v řádku K=0

Snímek 19

Nahrazení znaků v řádku 18 Problém 8. Je zadán řetězec znaků. Nahraďte všechna písmena A v něm písmenem O. Program n6; UsesCrt; Var s:string; i:integer; beginClrScr; Write("Zadejte řetězec"); readln(s); for i:=1 to length(s) do if (s[i]="A") then s[i]:="O"; writeln(y); konec. Procházíme od 1 do posledního písmene. Pokud je A na i-tém místě, dejte O na i-té místo.

Snímek 20

Nahrazení znaků v řádku 19 Začátek Vstup S i,1,délka(y) Si ="A" Si ="O" Výstup S Konec Ano Ne Vývojový diagram pro problém nahrazení písmene A O

Snímek 21

Úkol 9 Odstraňte všechna písmena R (latinka, velká) z řetězce zadaného z klávesnice. Program n7; UsesCrt; var a,b:String; i:integer; beginClrScr; Write("Zadejte řetězec = "); readln(a); b:=""; for i:=1 to length(a) do if (a[i]'R") then b:=b+a[i]; a:=b; writeln(a); end. Iterujte od 1 k poslední písmeno Připravíme si dodatečnou proměnnou Pokud na i-tém místě není R, přidáme toto písmeno k tomu, co je v B. Přesuneme to, co se stalo v B, zpět do A. Odebrání znaků z řádku 20

Publikace na dané téma