Typ údajových znakov v prezentácii Pascal. Prezentácia na tému Struny v Pascale




Syntax: var s: string[n]; var s1: reťazec; n - maximálna možná dĺžka reťazca - celé číslo v rozsahu. Ak je tento parameter vynechaný, predvolene je nastavený na 255.


Reťazcové konštanty sa zapisujú ako sekvencie znakov oddelené apostrofmi. S: = "Textový reťazec"


Prázdny znak je označený dvoma po sebe nasledujúcimi apostrofmi. Ak je apostrof zahrnutý v riadku ako znak, potom sa pri písaní zdvojnásobí. Premenné deklarované ako reťazce s rôznou maximálnou dĺžkou môžu byť priradené k sebe, hoci ak sa pokúsite priradiť krátku premennú k dlhej, nadbytočné znaky sa zahodia. Výrazy typu char možno priradiť ľubovoľným reťazcovým premenným.


Pascal poskytuje jednoduchý prístup k jednotlivým znakom reťazcovej premennej: i-tá postava premenná st sa zapisuje ako st[i]. Napríklad, ak st je "String", potom st je "C", st je "t", st je "p" atď.


Operácia zlúčenia (zlúčenia) je definovaná na údajoch reťazca, označených znakom +. Napríklad: a:= "Turbo"; b:= "Pascal"; c:= a + b; V tomto príklade sa premenná c zmení na „TurboPascal“.


Procedúry a funkcie pre prácu s reťazcami 1)n:= length("Pascal"); (n sa bude rovnať 6) 2) s:= "Turbo Pascal systém"; s2:= kópia(y, 1, 7); (s2 sa bude rovnať "Systém") s3:= copy(s, 9, 5); (s3 sa bude rovnať "Turbo") s4:= copy(s, 15, 6); (s4 sa bude rovnať "Pascal")

Prezentácia na tému "Strings in Pascal" v informatike v formát powerpoint. Táto prezentácia pre školákov 10. ročníka rozoberá teoretický materiál a úlohy na tému reťazcové dáta v programovacom jazyku Pascal. Autor prezentácie: učiteľ informatiky, Yudin A.B.

Fragmenty z prezentácie

teória

  • Reťazec je pole znakov, t.j. prvky typu char. V Pascale má reťazec dátový typ String.
  • Ak dĺžka nie je špecifikovaná, pamäť je alokovaná pre reťazec do 255 znakov.
  • Úloha 1. Vytvorte program, ktorý spočíta počet písmen v slove.
  • Úloha 2. Porovnajte dĺžku dvoch riadkov zadaných z klávesnice.

Funkcia Soru

  • Funkcia Copy(S, P, N) extrahuje podreťazec N znakov z reťazca S, začínajúc na pozícii P. N a P sú tu celočíselné výrazy.
  • Úloha 3. Vytvorte program, ktorý vyreže písmená zo slova POČÍTAČOVÁ VEDA tak, aby z nich vzniklo slovo TORTA.
  • Úloha 4. Napíšte program, ktorý vypíše prvú a poslednú číslicu prirodzeného čísla zadaného z klávesnice.

Postup VAL

Procedúra val vám umožňuje previesť digitálne znaky (obrázok čísla) na číslo. IN všeobecný pohľad volanie procedúry vyzerá takto:

  • VAL (reťazec, číslo, kód) ;
  • kde String je reťazcová konštanta alebo premenná obsahujúca obraz čísla;
  • Číslo – premenná celočíselného alebo zlomkového typu, ktorej musí byť priradená hodnota
  • Kód – kód chyby vrátený procedúrou (celé číslo)

Typ Konverzia

PascalABC má pokročilejší arzenál transformácií ako DELPHI:

  • S:=IntToStr(N) - prevedie celé číslo na reťazec;
  • n:=StrToInt(S) - skonvertuje reťazec na celé číslo
  • S:=FloatToStr(r) - konvertuje reálne číslo na reťazec
  • R:=StrToFloat(s) skonvertuje reťazec na reálne číslo.

Ak konverzia nie je možná, vyskytne sa chyba spustenia

Funkcie ORD a CHR

  • Funkcia Ord(S) – určuje poradové číslo symbolu.
  • Funkcia Chr(i) – určuje znak s poradovým číslom i

Úloha 6. Vytvorte program, ktorý na základe znaku zadaného z klávesnice zobrazí jeho číslo v tabuľke kódov.

Počítanie znakov v riadku

Problém 7. Daný reťazec znakov. Určte, koľkokrát sa v ňom objaví písmeno A (ruština).

Nahradenie znakov v reťazci

Úloha 8. Daný reťazec znakov. Nahraďte v ňom všetky písmená A písmenom O.

Odstránenie znakov z reťazca

Úloha 9 Odstráňte všetky písmená R (latinka, veľké) z reťazca zadaného na klávesnici.

Vnorené podmienky

Úloha 10. V danom texte, všade v danom texte, nahraďte písmeno „a“ písmenom „b“ a písmeno „b“ písmenom „a“.

Vnorené slučky

Problém 11. Daný reťazec znakov obsahujúci interpunkčné znamienka. Spočítajte, čo a koľko interpunkčných znamienok obsahuje riadok.


























Povoliť efekty

1 z 26

Zakázať efekty

Zobraziť podobné

Vložiť kód

V kontakte s

Spolužiaci

telegram

Recenzie

Pridajte svoju recenziu


Snímka 1

Snímka 2

Reťazec je pole znakov, t.j. prvky typu char. V Pascale má reťazec dátový typ String. varName: string [Dĺžka]; Ak dĺžka nie je špecifikovaná, pamäť je alokovaná pre reťazec do 255 znakov. Teória 1 var s1:string; reťazec 255 znakov var s2:string; reťazec 20 znakov

Snímka 3

Pravidlá: reťazce sú rovnaké iba vtedy, ak majú rovnakú sadu znakov a rovnakú dĺžku; Napríklad: "ABC"="ABC" a "ABC"≠"abc" inak dôjde k porovnaniu znakov podľa ich kódov: "0"

Snímka 4

Teória 3 Spojenie dvoch reťazcov. s1:="2011" + "rok"; Writeln(s1); s1:="10"; s2:="trieda"; s3:=s1+" "+s2; Writeln(s3);

Snímka 5

Dĺžka funkcie Funkcia Length(S) určuje aktuálnu dĺžku reťazca S. Výsledkom je celočíselná hodnota. Teória 4 PROGRAM Dĺžka_1; VAR S: STRING; n:INTEGER; BEGIN Writeln('enterword "); Readln(S); n:= Dĺžka (S) ; Writeln('enterword ", n:5, " písmena.."); KONIEC. Dĺžku reťazca zapíšeme do premennej celočíselného typu PROGRAM Dlina_2; VAR S: STRING; BEGIN Writeln('zadajte slovo'); Readln(S); Writeln('slovo sa skladá z ', dĺžka (S), 'písmená. '); KONIEC. Zobrazíme dĺžku reťazca ako výsledok vykonania funkcie Úloha 1. Vytvorte program, ktorý spočíta počet písmen v slove.

Snímka 6

Usescrt; var a,b:string; m,n: celé číslo; Begin Clrscr; Writeln("Zadajte prvý riadok");Readln(a); Writeln("Zadajte druhý riadok"); Readln(b); m:=Dĺžka(a); n:=Dlzka(b); if (m=n) then writeln("Retazce su si rovne"); if (m>n) then writeln("Prve je vacsie"); ak (m

Snímka 7

Funkcia Soru Funkcia Soru (S, P, N) extrahuje z reťazca S podreťazec dlhých N znakov, začínajúc od pozície P. N a P sú tu celočíselné výrazy. Teória 6 Vo slovnom spojení MATKA NAMYDLA RAMU sa slovo RAMU začína 11. písmenom a skladá sa zo 4 písmen COPY(s1,11,4)

Snímka 8

Úloha 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); Koniec. Úloha na skladanie reťazcov 7 Využijeme funkciu práce so symbolickými premennými COPY Druhá možnosť: Program n3_2; Usescrt; var a,b:string; Begin Clrscr; a:=‘informatika"; b:=a+a+a+a; writeln(b); Koniec. Definíciu reťazca používame ako pole znakov

Snímka 9

Konverzia typu 8 Funkcia STR Str(x, S) konvertuje číslo x na formát reťazca. Kde x je ľubovoľný číselný výraz, S je reťazcová premenná. Úloha 4. Napíšte program, ktorý vypíše prvú a poslednú číslicu prirodzeného čísla zadaného z klávesnice. PROGRAM Primer; používa Crt; VAR S: STRING; n:INTEGER; BEGIN Write("Zadajte číslo ");readln(n); Str(n,S); Writeln("Prvá číslica -",S); Writeln("Posledná číslica je ",S); KONIEC. Preveďte prirodzené číslo na reťazec

Snímka 10

Procedúra val vám umožňuje previesť digitálne znaky (obrázok čísla) na číslo. Vo všeobecnosti volanie procedúry vyzerá takto: VAL (String, Number, Code) ; kde String je reťazcová konštanta alebo premenná obsahujúca obraz čísla; Číslo – premenná celočíselného alebo zlomkového typu, ktorej musí byť priradená hodnota Kód – kód chyby vrátený procedúrou (celé číslo) Konverzia typu 9 Procedúra VAL

Snímka 11

Typ konverzie 10 BEGIN s1:="123456789"; val(s1,n,code); Writeln(n); KONIEC. BEGIN s1:="123456789ABCDE"; val(s1,n,code); Writeln(n); KONIEC.

Snímka 12

s1:="ABCDE123456789"; val(s1,n,code); Writeln(n); PascalABC má pokročilejší arzenál transformácií, ako DELPHI: S:=IntToStr(N) - konvertuje celé číslo na reťazec; n:=StrToInt(S) - konvertuje reťazec na celé číslo S:=FloatToStr(r) - konvertuje reálne číslo na reťazec R:=StrToFloat(s) konvertuje reťazec na reálne číslo. Ak konverzia nie je možná, vyskytne sa chyba spustenia Type Conversion 11

Snímka 13

Konverzia typov 12 Problém 5.

Snímka 14

Symboly a ich kódy 13 Funkcie ORD a CHR Funkcia Ord(S) – určuje poradové číslo symbolu. Funkcia Chr(i) – určuje znak s poradovým číslom i Pomocou čísla 255 odvodíme znak z kódovej tabuľky I

Snímka 15

Symboly a ich kódy 14 Úloha 6. Vytvorte program, ktorý na základe symbolu zadaného z klávesnice zobrazí jeho číslo v tabuľke kódov. PROGRAM Primer; používa Crt; VAR S: char; n,kód:INTEGER; BEGIN Write("Zadajte znak ");readln(s); Writeln("Symbol ", s," má kód -",ord(s)); KONIEC. Funkcia ORD funguje len so znakovým dátovým typom

Snímka 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 sa vyskytuje = ", k:8," krát"); koniec. Opakujte od 1 po posledné písmeno Ak je A na i-tom mieste, zvýšte K o 1 Počítanie znakov v riadku 15

Snímka 17

Poznámka 16 pre i:=1 to length(s) dobegin if (s[i]=…… if (s[i]=…… koniec; Poznámka: Ak potrebujete vyhľadať niekoľko znakov v riadku, potom priložíme podmienky v zátvorkách programu ZAČIATOK ... KONIEC

Snímka 18

Počítanie znakov v riadku 17 Začiatok Vstup S i,1,dĺžka(y) Si ="A" K=K+1 Výstup K Koniec Áno Nie Vývojový diagram úlohy počítania písmen A v riadku K=0

Snímka 19

Nahradenie znakov v riadku 18 Úloha 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); koniec. Prechádzame od 1 po posledné písmeno Ak je na i-tom mieste A, nasadíme ho i-té miesto O.

Snímka 20

Nahradenie znakov v riadku 19 Začiatok Vstup S i,1,dĺžka(y) Si ="A" Si ="O" Výstup S Koniec Áno Nie Vývojový diagram problému nahradenia písmena A za O

Snímka 21

Úloha 9 Odstráňte všetky písmená R (latinka, veľké) z reťazca zadaného na klávesnici. 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"), potom b:=b+a[i]; a:=b; writeln(a); end. Iterujte od 1 po posledné písmeno Pripravte ďalšiu premennú Ak na i-tom mieste nie je R, potom toto písmeno pridáme k tomu, čo je v B. To, čo sa stalo v B, sa presunie späť do A. Odstránenie znakov z reťazca 20

Snímka 22

Odstránenie znakov z reťazca 21 Začiatok Vstup A i,1,dĺžka(A) Ai "R" B=B+ Ai Výstup A Koniec Áno Nie Vývojový diagram problému odstraňovania písmen R z reťazca B="" A=B

Snímka 23

Vnorené podmienky. 22 začať clRscr; Readln(y); for i:=1 to length(s) do if (s[i]="a") alebo (s[i]="b") then if (s[i]="a") then s[i] :="b" else s[i]:="a"; writeln(y); koniec. Úloha 10. Z celého reťazca musíme vybrať iba A a B a až potom vykonať výmenu

Snímka 24

Vnorené podmienky 23 Začiatok Vstup S i, 1, dĺžka(S) Si ="a" Si ="b" Si ="a" Výstup S Koniec Si ="a" alebo Si ="b" Áno Nie Áno Nie Blokový diagram do problém nahradenia A za B a naopak

Snímka 25

Vnorené slučky 24 začínajú ClrScr; Write("IntoLine"); readln(s); s1:=",.;:"!?-"; pre i:=1 na dĺžku(s1) začnite k:=0; pre j:=1 na dĺžku(y) urobte if (s[j]=s1 [i]) potom k:=k+1; if (k0) then writeln(s1[i]," - ",k:5," krát"); koniec; koniec. Úloha 11. Vonkajšia slučka vymenováva znaky zapísané v S1 Telo vonkajšej slučky obsahuje slučku zodpovednú za enumeráciu znakov zadaného reťazca

Snímka 26

Vnorené slučky 25 Štart Vstup S i, 1, dĺžka(S1) s1=",.;:"!?-" K=0 j, 1, dĺžka(S) Sj = S1i Áno Nie K=K+1 K0 Výstup S1i ,K Nie Áno Koniec vývojového diagramu pre problém počítania interpunkčných znamienok

Zobraziť všetky snímky

Abstraktné

�STRANA � �STRANA �1�

Blok 1.

teória.

Snímka 1

Snímka 2

Snímka 3.

Snímka 4

Snímka 5. Riešenie problému bolo analyzované:

Snímka 6.

Snímka 7.

Vytvorte program, ktorý vystrihne písmená zo slova COMPUTER SCIENCE tak, aby z nich vzniklo slovo CAKE.

Blok 2.

Daný reťazec znakov a1+a2=. Kde 1<=а1 и а2<=9. Составить программу, вычисляющую это выражение. Измените программу так, что бы вместо знака «+» можно было писать « - », « * », « / ».

Problémy pre dodatočné riešenie:

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

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

Blok 3.

Blok 4.

Daný reťazec znakov. Určte, koľkokrát sa v ňom objaví písmeno A (ruština).

Problémy pre dodatočné riešenie:

Daný reťazec znakov. Určte, koľkokrát sa v ňom objaví písmeno A (ruština).

Blok 5.

Daný reťazec znakov. Nahraďte v ňom všetky písmená A písmenom O.

Problémy pre dodatočné riešenie:

Blok 6.

Problémy pre dodatočné riešenie:

Blok 7.

V uvedenom texte nahraďte všade písmeno „a“ písmenom „b“ a písmeno „b“ písmenom „a“.

Daný reťazec znakov obsahujúci interpunkčné znamienka. Spočítajte, čo a koľko interpunkčných znamienok obsahuje riadok.

Problémy pre dodatočné riešenie:

�STRANA � �STRANA �1�

Popis prezentácie „Strings in Pascal“

Táto prezentácia môže byť použitá pri štúdiu témy “Reťazce v programovacom jazyku Pascal” pri výučbe programovania v jazyku Pascal. Rozoberá definíciu a popis reťazcovej premennej, funkcie pre prácu s reťazcami a skúma aj niekoľko typických úloh pri práci s reťazcami. Prezentácia obsahuje 24 snímok, spojených do 7 blokov.

Stručná navigácia v snímkach a ďalšie úlohy, ktoré môžu študenti vyriešiť samostatne:

Blok 1.

teória.

Snímka 1 . Definícia reťazcovej premennej, ako aj spôsob popisu je uvedená v časti popis premennej.

Snímka 2 . Uvádzajú sa pravidlá na porovnávanie reťazcov v jazyku Pascal a dva príklady ilustrujúce tieto pravidlá.

Snímka 3. Sú uvedené príklady kombinovania viacerých riadkov do jedného.

Snímka 4 . Definícia funkcie Length() je uvedená. A analyzujú sa dve riešenia problému:

Napíšte program na počítanie počtu písmen v slove.

Prvá metóda pomocou operácie priradenia priradí počet znakov v reťazci premennej celočíselného typu a zobrazí ju na obrazovke. V druhej metóde sa funkcia Length() vloží priamo do príkazu Writeln.

Snímka 5. Riešenie problému bolo analyzované:

Porovnajte dĺžku dvoch reťazcov zadaných z klávesnice.

V ňom je potrebné určiť dĺžku dvoch reťazcov a pomocou operátora vetvy porovnať dĺžky týchto reťazcov.

Snímka 6. Definícia funkcie Copy() je uvedená. Snímka obrazovky ukazuje príklad fungovania tejto funkcie s potrebnými komentármi.

Snímka 7. Uvádzajú sa dva spôsoby riešenia problému:

Vytvorte program, ktorý vystrihne písmená zo slova COMPUTER SCIENCE tak, aby z nich vzniklo slovo CAKE.

V prvom prípade sa vystrihovanie vykonáva pomocou funkcie Kopírovať a v druhom pomocou reprezentácie reťazca ako poľa znakov.

Problémy pre dodatočné riešenie:

Napíšte program, ktorý si vyžiada meno osoby a zobrazí ho na obrazovke s pozdravom.

Napíšte program, ktorý požaduje meno a priezvisko osoby a zobrazí ich na jednom riadku s pozdravom.

Z klávesnice sa zadávajú dva riadky, ktoré určujú, ktorý z nich je dlhší a o koľko, a na obrazovke sa zobrazí príslušná správa.

Reťazec znakov sa zadáva z klávesnice, zobrazte znak na k-tom mieste. k – zadáva sa z klávesnice.

Slovo sa zadáva z klávesnice, je správne, že začína a končí rovnakým písmenom?

Sú uvedené dve slová. Je pravda, že prvé slovo končí rovnakým písmenom ako druhé?

Získajte od slova "INTEGRAL" slová "ČINKY", "Röntgenové žiarenie", "TIGER", "AGENT".

Vytvorte program, ktorý skontroluje pravopis predpôn raz- a ras- v slove zadanom z klávesnice a v prípade potreby opraví chybu.

Blok 2.

Typ konverzných funkcií.

Snímka 8. Je uvedený opis procedúry Srt(). Riešenie problému sa analyzuje:

Napíšte program, ktorý vypíše prvú a poslednú číslicu prirodzeného čísla zadaného z klávesnice.

V ňom sa prirodzené číslo prevedie na reťazec pomocou procedúry Str() a následne sa na obrazovke zobrazí prvý a posledný znak. Tu je bezpodmienečne nutné študentom povedať, že táto metóda nie je vhodná pre každý prípad, napríklad pri úlohách z olympiády je často stanovená podmienka, že nie je možné použiť znakový dátový typ a/alebo prirodzené číslo obsahuje viac ako 255 číslic atď. .

Snímka 9. Definícia procedúry Val() je uvedená.

Snímka 10. Zobrazuje príklady prevodu rôznych reťazcov obsahujúcich čísla na prirodzené číslo.

Snímka 11. Zobrazuje funkcie na konverziu číselných a znakových typov v programovacom systéme PascalABC. To môže byť veľmi užitočné, ak plánujete v budúcnosti prejsť na výučbu Lazarusa alebo Delphi.

Snímka 12. Riešenie problému je zobrazené:

Daný reťazec znakov a1+a2=. Kde 1<=а1 и а2<=9. Составить программу, вычисляющую это выражение. Измените программу так, что бы вместо знака «+» можно было писать « - », « * », « / ».

Považuje za najjednoduchší prípad, keď sa akcie vykonávajú s dvoma prirodzenými jednocifernými číslami. V budúcnosti, v závislosti od úrovne študentov, môže byť táto úloha čoraz ťažšia. Sčítanie viacciferných čísel, záporných čísel, umocňovanie, zátvorky a ukončenie napríklad výpočtom alebo prevodom poľského zápisu.

Problémy pre dodatočné riešenie:

Daný reťazec predstavujúci desiatkový zápis kladného celého čísla. Vytlačte reťazec predstavujúci binárne vyjadrenie toho istého čísla.

Daný reťazec predstavujúci kladné celé číslo. Nájdite súčet číslic tohto čísla.

Daný text v tvare a1+a2 +a3+…+ai. Kde ai sú celé čísla (0<=аi<=9). Составить программу, вычисляющую эту сумму.

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

Číslo je uvedené v hexadecimálnej číselnej sústave. Vytlačte riadok predstavujúci desatinný zápis toho istého čísla.

Daný reťazec predstavujúci binárnu reprezentáciu kladného celého čísla. Vytlačte riadok predstavujúci desatinný zápis toho istého čísla.

Blok 3.

Funkcie pre prácu s kódmi znakov.

Snímka 13. Funkcie ORD a CHR sú definované. Zobrazí sa snímka obrazovky programu ilustrujúca fungovanie funkcie Chr.

Snímka 14. Riešenie problému je zobrazené:

Napíšte program, ktorý na základe znaku zadaného z klávesnice zobrazí jeho číslo v tabuľke kódov.

Tu je potrebné upozorniť, že funkcia Ord pracuje len s dátovým typom znak (char). Pretože študenti veľmi často nerozumejú rozdielom medzi typmi znakov a reťazcov.

Blok 4.

Problémy s počítaním niečoho v riadku.

Snímka 15. Riešenie problému je zobrazené:

Daný reťazec znakov. Určte, koľkokrát sa v ňom objaví písmeno A (ruština).

Tento problém ilustruje spôsob vyhľadávania znakov v reťazci. Treba si uvedomiť, že na vyhľadávanie reťazca v reťazci je vhodnejšie použiť funkciu Kopírovať.

Snímka 16. Obsahuje pripomenutie, že ak potrebujete vyhľadať niekoľko znakov v riadku, podmienky uzatvárame v zátvorkách programu ZAČIATOK ... KONIEC

Snímka 17. Zobrazený je vývojový diagram úlohy zo snímky 15.

Problémy pre dodatočné riešenie:

Daný reťazec znakov. Určte, koľkokrát sa v ňom objaví písmeno A (ruština).

Vzhľadom na reťazec predstavujúci algebraický výraz skontrolujte párovanie zátvoriek v ňom. Zobrazte výsledok na obrazovke.

Text je daný. Určte, koľko rovnakých susedných písmen obsahuje.

Text je daný. Určte počet slov vo vete.

Text je daný. Určte, ktorých písmen M alebo N je v ňom viac.

Text je daný. Určte, koľko slov v tomto texte začína na písmeno A.

Daný znakový reťazec obsahujúci dvojbodku (:). Určte, koľko znakov mu predchádza.

Daný reťazec znakov. Určte, koľkokrát je v ňom zahrnutá skupina písmen ABC.

Text je daný. Obsahuje najmenej dve písmená K. Určte poradové čísla prvého a posledného písmena K.

Text je daný. Určte, ktoré z písmen C alebo T sa objaví ako prvé.

Text je daný. Určte počet písmen N pred prvou čiarkou vo vete.

Daný text obsahujúci dve čiarky. Spočítajte počet znakov umiestnených medzi týmito čiarkami.

Blok 5.

Úlohy na zmenu znakov v reťazci bez zmeny jeho dĺžky.

Snímka 18. Riešenie problému je zobrazené:

Daný reťazec znakov. Nahraďte v ňom všetky písmená A písmenom O.

Tento problém ukazuje, ako môžete zmeniť reťazec bez zmeny jeho dĺžky.

Snímka 19. Zobrazený je vývojový diagram úlohy zo snímky 18.

Problémy pre dodatočné riešenie:

Daný reťazec znakov. Nahraďte všetky písmená na párnych miestach písmenom O.

Daný reťazec znakov. Nahraďte v danom texte kombináciu písmen „min“ za „max“.

Daný reťazec znakov. Všetky medzery v ňom nahraďte znakom „_“.

Nájdite prvé a posledné písmeno K v texte zadávanom z klávesnice. A nahraďte ich znakom „*“.

Vytvorte program, ktorý opraví pravopis „ZHI“ a „SHI“ v slove zadanom z klávesnice.

Blok 6.

Úlohy súvisiace so zmenou dĺžky čiary.

Snímka 20. Riešenie problému je zobrazené:

Odstráňte všetky písmená R (latinka, veľké) z reťazca zadaného na klávesnici.

Táto úloha ukazuje, ako sa reťazec mení pri zmene jeho dĺžky.

Snímka 21. Zobrazený je vývojový diagram úlohy zo snímky 20.

Problémy pre dodatočné riešenie:

Odstráňte všetky písmená A (latinka, veľké) z reťazca zadaného z klávesnice.

Slovo bolo dané. Skontrolujte, či ide o prehadzovač. To znamená, že sa to číta rovnako od konca aj od začiatku. (Napríklad: ANNA, SHALASH.)

V danom slove nahraďte každé písmeno „b“ kombináciou písmen „ku“.

Napíšte program, ktorý odstráni všetky písmená z daného textu. (Zadajte text a písmeno z klávesnice).

Na navrhovanie nadpisov a logicky dôležitých slov sa textové znaky striedajú s medzerami. Napíšte program, ktorý vykoná takúto operáciu.

Z tohto textu odstráňte všetky písmená „C“, ktoré predchádzajú písmenu „T“.

Za každé písmeno P vložte tri výkričníky „!!!“.

Blok 7.

Problémy s vnorenými vetvami a slučkami.

Snímka 22. Riešenie problému je zobrazené:

V uvedenom texte nahraďte všade písmeno „a“ písmenom „b“ a písmeno „b“ písmenom „a“.

Priame riešenie tohto problému „hlavou“ neprináša výsledky. Tu musíte vybrať iba potrebné písmená, aby sa ostatné nezmenili. A potom, v závislosti od toho, ktoré písmeno sa nájde, vykonajte náhradu pomocou úplného stavu.

Snímka 23. Je zobrazený vývojový diagram pre úlohu zo snímky 22.

Snímka 24. Riešenie problému je zobrazené:

Daný reťazec znakov obsahujúci interpunkčné znamienka. Spočítajte, čo a koľko interpunkčných znamienok obsahuje riadok.

Tento problém ukazuje príklad použitia vnorených slučiek na porovnanie dvoch reťazcov. Tento problém je možné vyriešiť pomocou veľkého množstva podmienok, ale takéto riešenie podľa mňa nebude racionálne.

Problémy pre dodatočné riešenie:

Daný reťazec znakov (ruština). Určte počet samohlások v tomto riadku.

Daný reťazec znakov (anglicky). Určte, ktoré a koľko samohlások obsahuje riadok.

Daný reťazec znakov. Určte, ktoré znaky majú viac samohlások alebo spoluhlások.

Dané dva reťazce A a B. Určte, či je možné vytvoriť reťazec B z písmen reťazca A. Navyše každé písmeno môže byť použité raz. Písmená je možné preskupovať. (Napríklad: môžete získať AGENT od INTEGRAL, ale nie GRAPH).

Text je daný. Určte, ktoré má viac čísel alebo písmen.

Sú uvedené dva riadky. Spočítajte a zobrazte počet bežných písmen. (Písmená v prvom a druhom riadku).

Z daného textu vyberte a zobrazte tie znaky, ktoré sa v ňom vyskytujú práve raz.

Aby Eustace varoval pred zlyhaním operácie, prišiel s nasledujúcim spôsobom upozornenia. Pošle telegram, ktorého text obsahuje znaky „b“, „e“, „d“, „a“, nevyhnutne v tomto poradí, ale nie nevyhnutne v rade. Vytvorte program, ktorý vám umožní určiť, či odoslaný text predstavuje upozornenie na zlyhanie alebo nie.

Na upevnenie témy je potrebné vyriešiť čo najviac problémov. Ich počet priamo závisí od počtu hodín vyčlenených na štúdium danej témy a kurzu programovania ako celku.

Podľa môjho názoru sú najúspešnejšie knihy o problémoch s programovaním:

Zbierka problémov s programovaním. 2. vydanie. Autor D.M. Zlatopolský. Vydané v Petrohrade "BHV-Petersburg" v roku 2007.

Elektronická verzia Príručky programovania Verzia 4.6. Autor M.E.Abramyan. Distribuované s programovacím systémom Pascal ABC.

Prezentujú problémy na všetky témy kurzu programovania.

Na základe týchto problémových kníh a niektorých ďalších zdrojov som vytvoril vlastnú mini knihu problémov, v ktorej som rozdelil problémy do troch skupín obtiažnosti A, B a C.

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

Stiahnite si abstrakt

Ak chcete použiť ukážky prezentácií, vytvorte si účet Google a prihláste sa doň: https://accounts.google.com


Popisy snímok:

Textové a znakové dátové typy Pascal Prezentáciu pripravila učiteľka informatiky Tatyana Petrovna Kareva MBOU Gymnázium č. 6 Mezhdurechensk, Kemerovo Region

Výpočtové stroje sa zaoberajú viac než len číslami. Takmer viac času trávia pri spracovaní textu. Pascal má na to špeciálny dátový typ nazývaný CHAR (od slova znak). Napíšte CHAR (znak alebo reťazec alebo literál). Jeho významy sú jednotlivé znaky: písmená, čísla, znaky. Znakové konštanty sú uzavreté v úvodzovkách, napríklad 'A', 'B', 'C', '4', '7', ' '(medzera). Znakové premenné popisuje klauzula Názov premennej Var: char ;

Hodnoty znakov je možné zadávať a vydávať, priraďovať a porovnávať. Nižšie je uvedený príklad, kde sa vykonávajú všetky tieto kroky. Var x, y: znak; Začať písať(‘ Zadajte znak‘); readln(x); Y:='A'; Ak x

Symboly je možné porovnávať vďaka tomu, že sú uložené v pamäti počítača ako celé čísla (znakové kódy). Z dvoch symbolov sa za väčší považuje ten, ktorého kód je väčší. Znaky sú zoradené takto: ' A '=,.

Štandardné symbolické funkcie. Pascal má štandardné symbolické funkcie: CHR (N) – vráti do programu symbol s kódom N, ORD (S) – vráti kód symbolu S, PRED (S) – vráti predchádzajúci symbol SUCC (S) – vráti nasledujúci symbol PRÍKLADY: CHR ( 128) = B ORD (':') = 58 PRED(' B ') = A SUCC(' G ') = D

Každý znak má svoj vlastný jedinečný binárny kód. Kódy všetkých symbolov sú zhrnuté v tabuľke. Prvá polovica tabuľky sa stala medzinárodným štandardom s názvom ASCII - American Standard Code Information Interchange (čítaj ako „ask code“), okrem iného obsahuje latinskú abecedu, druhá má rôzne možnosti pre rôzne jazyky. Cyrilika (ruská abeceda) má niekoľko noriem. Pascal používa štandard KOI-8.

PRÍKLAD použitia premennej typu znaku. Vytvorte program, v ktorom počítač opakovane vypočítava súčet A + B pre rôzne hodnoty A a B. Na konci každej fázy sa objaví výzva na pokračovanie alebo zastavenie výpočtov: „Ukončiť program? (Á/N ).“ Var A, B: skutočné; C: char; Begin repeat Write(‘Zadajte dve čísla’); Readln(a,b); Writeln(a + b:0:2); Writeln(‘Ukončiť program?(Á/N)’); Readln(c); Do c='D'; (program sa ukončí, ak zadáte D) Readln End.

Tréningové úlohy. 1. Čo vráti funkcia CHR(ORD(X))? 2. Určte hodnoty nasledujúcich funkcií: CHR(68) ORD('d') PRED(1) SUCC(' I ') 3. Vytvorte program, v ktorom počítač nájde súčin nepárnych čísel, počnúc od jeden a až po otázku položenú po každom kroku výpočtu: „Pokračovať vo výpočtoch? (Á/N)“, odpovedzte „Á“.

Na spracovanie väčších textových jednotiek – reťazcov – bol zavedený dátový typ s názvom STRING. Hodnoty tohto typu sú reťazce ľubovoľných znakov až do dĺžky 255. Premenné reťazca musia byť popísané klauzulou: Názov VAR: STRING Reťazce možno priraďovať, porovnávať, vstupovať, vystupovať a spájať. Pripojenie je označené znakom „+“. Tu sú príklady niektorých porovnávacích operácií s reťazcami: "tabuľka"

Medzi všetkými možnými hodnotami reťazca je prázdny reťazec. Predstavujú ho dva apostrofy (jednoduché úvodzovky), medzi ktorými nie je nič. Ak chcete zadať tento znak do reťazca, musíte ho zopakovať dvakrát. Napríklad operátor zápisu ("about""fenomén") zobrazí: "deklarácia". Programátor má prístup k jednotlivým znakom reťazcovej premennej, na tento účel je potrebné okrem názvu premennej uviesť aj sériové číslo číslo znaku v riadku. Napríklad, ak je popísaná premenná X:STRING, potom X je prvý znak reťazca, X je druhý atď. X má špeciálnu úlohu - uložiť dĺžku reťazca . Hodnota X je znak, ktorého kód sa rovná počtu znakov v reťazci. Na určenie dĺžky reťazcovej premennej sa však zvyčajne používa funkcia LENGTH(reťazcová premenná), ak napríklad N:=LENGTH( x); - N bude priradená hodnota rovnajúca sa počtu znakov v riadku.

Pri popise reťazcovej premennej môžeme dĺžku reťazca obmedziť zadaním jeho maximálnej možnej veľkosti, potom sa do reťazca uloží len určený počet znakov. Var a,b:string ; begin write("zadaj slovo"); readln(a); napísať); readlnend. Ak pri spustení tohto programu zadáte slovo CORN, program vypíše COOK.

PAMATUJTE SI. Ak počas vykonávania programu potrebujete zadať hodnotu pre niekoľko reťazcových premenných, každá z nich musí mať svoj vlastný vstupný príkaz READLN. Napríklad Var a,b,c:string ; begin readln(a); readln(b); readln(c); napis(a+b+c); readlnend. Skontrolujte, čo sa stane, ak napíšete READLN(a,b,c); alebo PREČÍTAJTE (a, b, c).

Príklad 1. Vytvorte program, ktorý určí, ktoré z dvoch priezvisk je dlhšie. Priezviská majú rôzne dĺžky. Var a,b:string ; begin readln(a); readln(b); ak dĺžka(a)>dĺžka(b) tak napíš(a) inak napíš(b); readlnend.

Príklad 2. Sú uvedené dve slová. Napíšte program, ktorý určí, či je pravda, že prvé slovo začína rovnakým písmenom ako končí druhé slovo. Var x,y:byte ; a,b:string ; begin readln(a); readln(b); x:=dĺžka(b); (určíme dĺžku slova b, aby sme zistili číslo posledného znaku) ak a=b[x] napíšte („pravda“), inak napíšte („nesprávne“); readln end .

Tréningové úlohy. 1. Uvádza sa názov mesta. Určte, či je počet znakov v ňom párny alebo nepárny. 2. Slovo je dané. Zobrazte jeho tretí znak a jeho posledný znak dvakrát. 3. Slovo je dané. Je pravda, že začína a končí rovnakým písmenom? 4. Slovo je dané. Prijať a zobraziť kombináciu písmen pozostávajúcu z tretieho a posledného znaku. 5. Vytvorte program, ktorý požaduje názov futbalového tímu a zopakuje ho na obrazovke so slovami: „Toto je šampión!“

Na prácu s reťazcovými premennými v jazyku Pascal existuje súbor štandardných procedúr a funkcií. Ich použitie zjednodušuje riešenie problémov. Chcel by som vám pripomenúť, že výsledok vykonania funkcie musí byť uložený v premennej príslušného typu, pokiaľ samozrejme nie je, funkcia, prvkom výrazu. Funkcia na kopírovanie reťazca alebo jeho časti. S:=COPY(retazec, poloha, N); Funkcia kopírovania sa tiež nazýva "rezanie". Výsledkom vykonania funkcie bude časť reťazca začínajúca od zadanej pozície dĺžky N.

Príklad: Je podaný návrh. Určite poradové číslo prvého písmena „k“, ktoré sa objavilo. Ak takýto list neexistuje, nahláste to. Var x: celé číslo; a:string; begin write("Zadajte vetu"); readln(a); x:=pos(" až ",a); ak x=0, potom writeln ("Také písmeno neexistuje") else writeln (x); readlnend.

Procedúra na vymazanie časti reťazca DELETE(riadok, začiatočné číslo, počet znakov) Odstráni zadaný počet znakov zo zdrojového reťazca. Príklad: Dané slovo pozostávajúce z párneho počtu písmen. Zobrazte jeho prvú polovicu. Var i,x:byte ; a,p:string ; začať opakovať zápis („Zadajte slovo s párnym počtom písmen“); readln(a); x:=dĺžka(a); (určíme dĺžku slova) do (x mod 2 = 0); x:= x div 2; (použite celočíselné delenie) delete (a,x+1,x); napísať); readln end .

Postup na vloženie podreťazca do reťazca INSERT(riadok1, riadok2, poloha); Riadok 1 sa vloží do riadku 2 so začiatkom na určenej pozícii. Tréningové úlohy. 1. Je daný návrh. Určte počet výskytov určitého symbolu. 2. Je podaný návrh. Všetky výskyty kombinácie písmen „ah“ nahraďte „uh“. 3. Slovo je dané. Skontrolujte, či nejde o „zvrat“, t.j. číta rovnakým spôsobom od začiatku do konca. 4. Slovo je dané: a. odstráňte z neho prvé písmeno „o“, ak také písmeno existuje; b. odstráňte z neho posledné písmeno "t", ak také písmeno existuje. 5. Je podaný návrh. Odstráňte z neho všetky písmená "s".


Snímka 1

Snímka 2

Reťazec je pole znakov, t.j. prvky typu char. V Pascale má reťazec dátový typ String. var Meno: string [Dĺžka]; Ak dĺžka nie je špecifikovaná, pamäť je alokovaná pre reťazec do 255 znakov. Teória 1 var s1:string; reťazec 255 znakov var s2:string; reťazec 20 znakov

Snímka 3

Pravidlá: reťazce sú rovnaké iba vtedy, ak majú rovnakú sadu znakov a rovnakú dĺžku; Napríklad: "ABC"="ABC" a "ABC"≠"abc" inak existuje porovnanie znakov podľa jednotlivých prvkov podľa ich kódov: "0"

Snímka 4

Teória 3 Spojenie dvoch reťazcov. s1:="2011" + "rok"; Writeln(s1); s1:="10"; s2:="trieda"; s3:=s1+" "+s2; Writeln(s3);

Snímka 5

Funkcia Length Funkcia Length(S) určuje aktuálnu dĺžku reťazca S. Výsledkom je celočíselná hodnota. Teória 4 PROGRAM Dĺžka_1; VAR S: STRING; n:INTEGER; BEGIN Writeln('zadajte slovo "); Readln(S); n:= Dĺžka (S) ; Writeln('zadajte slovo ", n:5, " lit.."); KONIEC. Dĺžku reťazca zapíšeme do premennej celočíselného typu PROGRAM Dlina_2; VAR S: STRING; BEGIN Writeln('zadajte slovo') ; Readln(S); Writeln('slovo sa skladá z ', Dĺžka (S) ,'písmená.'); KONIEC. Zobrazíme dĺžku reťazca ako výsledok vykonania funkcie Úloha 1. Vytvorte program, ktorý spočíta počet písmen v slove.

Snímka 6

Usescrt; var a,b:string; m,n: celé číslo; Begin Clrscr; Writeln("Zadajte prvý riadok");Readln(a); Writeln("Zadajte druhý riadok"); Readln(b); m:=Dĺžka(a); n:=Dlzka(b); if (m=n) then writeln("Riadky sa rovnajú"); if (m>n) then writeln("Prve je vacsie"); ak (m

Snímka 7

Funkcia Soru Funkcia Soru (S, P, N) extrahuje z reťazca S podreťazec dlhých N znakov, začínajúc od pozície P. N a P sú tu celočíselné výrazy. Teória 6 Vo slovnom spojení MATKA NAMYDLA RAMU sa slovo RAMU začína 11. písmenom a skladá sa zo 4 písmen COPY(s1,11,4)

Snímka 8

Úloha 3. Vytvorte program, ktorý vyreže písmená zo slova POČÍTAČOVÁ VEDA tak, aby z nich vzniklo slovo TORTA. 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); Koniec. Úloha na skladanie reťazcov 7 Využijeme funkciu práce so symbolickými premennými COPY Druhá možnosť: Program n3_2; Usescrt; var a,b:string; Begin Clrscr; a:=‘informatika"; b:=a+a+a+a; writeln(b); Koniec. Definíciu reťazca používame ako pole znakov

Snímka 9

Konverzia typu 8 Funkcia STR Str(x, S) konvertuje číslo x na formát reťazca. Kde x je ľubovoľný číselný výraz, S je reťazcová premenná. Úloha 4. Napíšte program, ktorý vypíše prvú a poslednú číslicu prirodzeného čísla zadaného z klávesnice. PROGRAM Primer; používa Crt; VAR S: STRING; n:INTEGER; BEGIN Write("Zadajte číslo ");readln(n); Str(n,S); Writeln("Prvá číslica -",S); Writeln("Posledná číslica je ",S); KONIEC. Preveďte prirodzené číslo na reťazec

Snímka 10

Procedúra val vám umožňuje previesť digitálne znaky (obrázok čísla) na číslo. Vo všeobecnosti volanie procedúry vyzerá takto: VAL (String, Number, Code) ; kde String je reťazcová konštanta alebo premenná obsahujúca obraz čísla; Číslo – premenná celočíselného alebo zlomkového typu, ktorej musí byť priradená hodnota Kód – kód chyby vrátený procedúrou (celé číslo) Konverzia typu 9 Procedúra VAL

Snímka 11

Typ konverzie 10 BEGIN s1:="123456789"; val(s1,n,code); Writeln(n); KONIEC. BEGIN s1:="123456789ABCDE"; val(s1,n,code); Writeln(n); KONIEC.

Snímka 12

s1:="ABCDE123456789"; val(s1,n,code); Writeln(n); PascalABC má rozvinutejší arzenál transformácií ako DELPHI: S:=IntToStr(N) - konvertuje celé číslo na reťazec; n:=StrToInt(S) - konvertuje reťazec na celé číslo S:=FloatToStr(r) - konvertuje reálne číslo na reťazec R:=StrToFloat(s) konvertuje reťazec na reálne číslo. Ak konverzia nie je možná, vyskytne sa chyba spustenia Type Conversion 11

Snímka 13

Snímka 14

Symboly a ich kódy 13 Funkcie ORD a CHR Funkcia Ord(S) – určuje poradové číslo symbolu. Funkcia Chr(i) – určuje znak s poradovým číslom i Pomocou čísla 255 odvodíme znak z kódovej tabuľky I

Snímka 15

Symboly a ich kódy 14 Úloha 6. Vytvorte program, ktorý na základe symbolu zadaného z klávesnice zobrazí jeho číslo v tabuľke kódov. PROGRAM Primer; používa Crt; VAR S: char; n,kód:INTEGER; BEGIN Write("Zadajte znak ");readln(s); Writeln("Symbol ", s," má kód -",ord(s)); KONIEC. Funkcia ORD funguje len so znakovým dátovým typom

Snímka 16

Problém 7. Daný reťazec znakov. Určte, koľkokrát sa v ňom objaví písmeno A (ruština). Program n5; UsesCrt; Var s:string; i,k:integer; beginClrScr; Write("Zadajte reťazec"); readln(s); k:=0; for i:=1 to length(s) do if (s[i]="A") then k:=k+1; writeln("Písmeno A sa vyskytuje = ", k:8," krát"); koniec. Opakujte od 1 po posledné písmeno Ak je A na i-tom mieste, zvýšte K o 1 Počítanie znakov v riadku 15

Snímka 17

Poznámka 16 pre i:=1 až dĺžky(y) do begin if (s[i]=…… if (s[i]=…… koniec; Poznámka: Ak potrebujete vyhľadať niekoľko znakov v riadku, potom podmienky uzavrite do zátvoriek programu ZAČIATOK...KONIEC

Snímka 18

Počítanie znakov v riadku 17 Začiatok Vstup S i,1,dĺžka(y) Si ="A" K=K+1 Výstup K Koniec Áno Nie Vývojový diagram úlohy počítania písmen A v riadku K=0

Snímka 19

Nahradenie znakov v riadku 18 Problém 8. Zadaný reťazec znakov. Nahraďte všetky písmená A v ňom písmenom O. Program n6; UsesCrt; Var s:string; i:integer; beginClrScr; Write("Zadajte reťazec"); readln(s); for i:=1 to length(s) do if (s[i]="A") then s[i]:="O"; writeln(y); koniec. Prechádzame od 1 po posledné písmeno Ak je A na i-tom mieste, umiestnime O na i-té miesto.

Snímka 20

Nahradenie znakov v riadku 19 Začiatok Vstup S i,1,dĺžka(y) Si ="A" Si ="O" Výstup S Koniec Áno Nie Vývojový diagram problému nahradenia písmena A za O

Snímka 21

Úloha 9 Odstráňte všetky písmená R (latinka, veľké) z reťazca zadaného na klávesnici. Program n7; UsesCrt; var a,b:String; i:integer; beginClrScr; Write("Zadajte reťazec = "); readln(a); b:=""; for i:=1 to length(a) do if (a[i]'R") then b:=b+a[i]; a:=b; writeln(a); end. Iterovať od 1 po poslednú písmeno Pripravíme si dodatočnú premennú Ak na i-tom mieste nie je R, tak toto písmeno pridáme k tomu, čo je v B. To, čo sa stalo v B, presunieme späť do A. Odstránenie znakov z riadku 20

Publikácie na danú tému