Tipo di dati carattere nella presentazione Pascal. Presentazione sul tema Stringhe in Pascal




Sintassi: var s: string[n]; var s1: stringa; n - lunghezza massima possibile della stringa - un numero intero nell'intervallo. Se questo parametro viene omesso, per impostazione predefinita è impostato su 255.


Le costanti stringa vengono scritte come sequenze di caratteri delimitate da apostrofi. S: = "Stringa di testo"


Un carattere vuoto è indicato da due apostrofi consecutivi. Se un apostrofo è incluso in una riga come carattere, viene raddoppiato quando viene scritto. Le variabili dichiarate come stringhe con lunghezze massime diverse possono essere assegnate l'una all'altra, sebbene se provi ad assegnare una variabile breve a una lunga, i caratteri extra verranno scartati. Le espressioni di tipo char possono essere assegnate a qualsiasi variabile stringa.


Pascal fornisce un facile accesso ai singoli caratteri di una variabile stringa: i-esimo carattere la variabile st è scritta come st[i]. Ad esempio, se st è "String", allora st è "C", st è "t", st è "p" e così via.


Un'operazione di fusione (concatenazione) è definita su dati stringa, indicati dal segno +. Ad esempio: a:= "Turbo"; b:= "Pascal"; c:= a+b; In questo esempio, la variabile c diventerà "TurboPascal".


Procedure e funzioni per lavorare con le stringhe 1)n:= length("Pascal"); (n sarà uguale a 6) 2) s:= "Sistema Turbo Pascal"; s2:= copia(s, 1, 7); (s2 sarà uguale a "Sistema") s3:= copy(s, 9, 5); (s3 sarà uguale a "Turbo") s4:= copy(s, 15, 6); (s4 sarà uguale a "Pascal")

Presentazione sul tema "Stringhe in Pascal" in informatica in formato PowerPoint. Questa presentazione per gli scolari del 10° anno discute materiale teorico e compiti sul tema dei dati di stringa nel linguaggio di programmazione Pascal. Autore della presentazione: insegnante di informatica, Yudin A.B.

Frammenti della presentazione

Teoria

  • Una stringa è un array di caratteri, ad es. elementi di tipo char. In Pascal, una stringa ha un tipo di dati String.
  • Se la lunghezza non è specificata, la memoria viene allocata per una stringa fino a 255 caratteri.
  • Attività 1. Crea un programma che conta il numero di lettere in una parola.
  • Attività 2. Confronta la lunghezza di due righe immesse dalla tastiera.

Funzione Soru

  • La funzione Copy(S, P, N) estrae una sottostringa di N caratteri dalla stringa S, a partire dalla posizione P. Qui N e P sono espressioni intere.
  • Attività 3. Crea un programma che taglia le lettere della parola INFORMATICA in modo che formino la parola TORTA.
  • Compito 4. Scrivere un programma che stampi la prima e l'ultima cifra di un numero naturale digitato da tastiera.

Procedura VAL

La procedura val consente di convertire i caratteri digitali (l'immagine di un numero) in un numero. IN vista generale richiamare la procedura è simile a questo:

  • VAL (Stringa, Numero, Codice) ;
  • dove String è una costante o variabile stringa contenente l'immagine di un numero;
  • Numero – una variabile di tipo intero o frazionario a cui deve essere assegnato un valore
  • Code – codice errore restituito dalla procedura (intero)

Conversione del tipo

PascalABC ha un arsenale di trasformazioni più avanzato come DELPHI:

  • S:=IntToStr(N) - converte un numero intero in una stringa;
  • n:=StrToInt(S) - converte una stringa in un numero intero
  • S:=FloatToStr(r) - converte un numero reale in una stringa
  • R:=StrToFloat(s) converte una stringa in un numero reale.

Se la conversione non è possibile, si verifica un errore di runtime

Funzioni ORD e CHR

  • Funzione Ord(S) – determina il numero ordinale del simbolo.
  • Funzione Chr(i) – determina il carattere con numero di serie i

Attività 6. Creare un programma che, in base a un carattere immesso dalla tastiera, visualizzi il suo numero nella tabella dei codici.

Conteggio dei caratteri in una riga

Problema 7. Data una stringa di caratteri. Determina quante volte appare la lettera A (russa).

Sostituzione di caratteri in una stringa

Problema 8. Data una stringa di caratteri. Sostituisci tutte le lettere A con la lettera O.

Rimozione di caratteri da una stringa

Attività 9 Rimuovi tutte le lettere R (latino, maiuscolo) dalla stringa inserita dalla tastiera.

Condizioni nidificate

Compito 10. Nel testo dato, ovunque nel testo dato, sostituisci la lettera “a” con la lettera “b” e la lettera “b” con la lettera “a”.

Cicli nidificati

Problema 11. Data una stringa di caratteri contenente segni di punteggiatura. Conta cosa e quanti segni di punteggiatura contiene una riga.


























Abilita effetti

1 di 26

Disabilita effetti

Visualizza simile

Codice di incorporamento

In contatto con

Compagne di classe

Telegramma

Recensioni

Aggiungi la tua recensione


Diapositiva 1

Diapositiva 2

Una stringa è un array di caratteri, ad es. elementi di tipo char. In Pascal, una stringa ha un tipo di dati String. varName: stringa [Lunghezza]; Se la lunghezza non è specificata, la memoria viene allocata per una stringa fino a 255 caratteri. Teoria 1 var s1:string; stringa 255 caratteri var s2:string; stringa di 20 caratteri

Diapositiva 3

Regole: le stringhe sono uguali solo se hanno lo stesso set di caratteri e la stessa lunghezza; Ad esempio: "ABC"="ABC" e "ABC"≠"abc" altrimenti avviene un confronto elemento per elemento dei caratteri in base ai loro codici: "0"

Diapositiva 4

Teoria 3 Collegamento di due stringhe. s1:="2011" + "anno"; Scriviln(s1); s1:="10"; s2:="classe"; s3:=s1+" "+s2; Scriviln(s3);

Diapositiva 5

Funzione Lunghezza La funzione Lunghezza(S) determina la lunghezza corrente della stringa S. Il risultato è un valore intero. Teoria 4 PROGRAMMA Lunghezza_1; VAR S: STRINGA; n:INTERO; BEGIN Writeln('enterword "); Readln(S); n:= Lunghezza (S) ; Writeln('enterword ", n:5, " lettere.."); FINE. Scriviamo la lunghezza della stringa in una variabile di tipo intero PROGRAM Dlina_2; VAR S: STRINGA; BEGIN Writeln('inserisci una parola'); Leggi(S); Writeln('la parola è composta da ', Lunghezza (S),'lettere. '); FINE. Visualizziamo la lunghezza della stringa come risultato dell'esecuzione della funzione Attività 1. Creare un programma che conti il ​​numero di lettere in una parola.

Diapositiva 6

Usacrt; var a,b:stringa; m,n:Intero; Inizia Clrscr; Writeln("Inserisci la prima riga");Readln(a); Writeln("Inserisci la seconda riga "); Readln(b); m:=Lunghezza(a); n:=Lunghezza(b); if (m=n) then writeln("Le stringhe sono uguali"); if (m>n) then writeln("Il primo è maggiore"); se (M

Diapositiva 7

Funzione Soru La funzione Soru (S, P, N) estrae dalla stringa S una sottostringa di N caratteri, a partire dalla posizione P. Qui N e P sono espressioni intere. Teoria 6 Nella frase MOTHER SOAPED RAMU, la parola RAMU inizia con l'undicesima lettera ed è composta da 4 lettere COPY(s1,11,4)

Diapositiva 8

Attività 3. Programma n3_1; Usacrt; var a,b,c,d:stringa; Inizia Clrscr; a:="informatica"; b:=""; c:=copia(a,8,1); d:=copia(a,4,2); b:=c+d+c; scriviln(b); FINE. Compito per comporre stringhe 7 Usiamo la funzione di lavorare con variabili simboliche COPIA Seconda opzione: Programma n3_2; Usacrt; var a,b:stringa; Inizia Clrscr; a:=‘informatica"; b:=a+a+a+a; writeln(b); End. Usiamo la definizione di stringa come array di caratteri

Diapositiva 9

Conversione del tipo 8 La funzione STR Str(x, S) converte il numero x in formato stringa. Dove x è una qualsiasi espressione numerica, S è una variabile stringa. Compito 4. Scrivere un programma che stampi la prima e l'ultima cifra di un numero naturale digitato da tastiera. PROGRAMMA Primer; utilizza Crt; VAR S: STRINGA; n:INTERO; BEGIN Write("Inserisci un numero ");readln(n); Str(n,S); Writeln("Prima cifra -",S); Writeln("L'ultima cifra è ",S); FINE. Convertire un numero naturale in una stringa

Diapositiva 10

La procedura val consente di convertire i caratteri digitali (l'immagine di un numero) in un numero. In generale, una chiamata a una procedura si presenta così: VAL (Stringa, Numero, Codice) ; dove String è una costante o variabile stringa contenente l'immagine di un numero; Numero – una variabile di tipo intero o frazionario a cui deve essere assegnato un valore Codice – codice di errore restituito dalla procedura (intero) Conversione di tipo 9 Procedura VAL

Diapositiva 11

Digita conversione 10 BEGIN s1:="123456789"; val(s1,n,codice); Scriviln(n); FINE. INIZIO s1:="123456789ABCDE"; val(s1,n,codice); Scriviln(n); FINE.

Diapositiva 12

s1:="ABCDE123456789"; val(s1,n,codice); Scriviln(n); PascalABC ha un arsenale di trasformazioni più avanzato, come DELPHI: S:=IntToStr(N) - converte un numero intero in una stringa; n:=StrToInt(S) - converte una stringa in un numero intero S:=FloatToStr(r) - converte un numero reale in una stringa R:=StrToFloat(s) converte una stringa in un numero reale. Se la conversione non è possibile, si verifica un errore di runtime Type Conversion 11

Diapositiva 13

Conversione del tipo 12 Problema 5.

Diapositiva 14

Simboli e relativi codici 13 Funzioni ORD e CHR Funzione Ord(S) – determina il numero di serie del simbolo. Funzione Chr(i) – determina il carattere con il numero di serie i Utilizzando il numero 255, deriviamo il carattere dalla tabella dei codici I

Diapositiva 15

Simboli e relativi codici 14 Attività 6. Creare un programma che, in base a un simbolo immesso dalla tastiera, visualizzi il suo numero nella tabella dei codici. PROGRAMMA Primer; utilizza Crt; VAR S: carattere; n,codice:INTERO; BEGIN Write("Inserisci il carattere ");readln(s); Writeln("Il simbolo ", s," ha il codice -",ord(s)); FINE. La funzione ORD funziona solo con il tipo di dati carattere

Diapositiva 16

Problema 7. Programma n5; Utilizza Crt; Var s:stringa; i,k:intero; inizioClrScr; Write("InLinea"); leggere(i); k:=0; for i:=1 a length(s) fai if (s[i]="A") then k:=k+1; writeln("La lettera A ricorre = ", k:8," volte"); FINE. Itera da 1 all'ultima lettera Se A è all'i-esimo posto, aumenta K di 1 Contando i caratteri nella riga 15

Diapositiva 17

Nota 16 for i:=1 to length(s) dobegin if (s[i]=…… if (s[i]=…… end; Nota: se è necessario cercare più caratteri in una riga, alleghiamo le condizioni tra parentesi del programma BEGIN ...END

Diapositiva 18

Conteggio dei caratteri nella riga 17 Inizio Ingresso S i,1,lunghezza(e) Si ="A" K=K+1 Uscita K Fine Sì No Diagramma di flusso per il compito di contare le lettere A nella riga K=0

Diapositiva 19

Sostituzione dei caratteri nella riga 18 Task 8.Programma n6; Utilizza Crt; Var s:stringa; i:intero; inizioClrScr; Write("InLinea"); leggere(i); for i:=1 a length(s)do if (s[i]="A") then s[i]:="O"; scrittura(i); FINE. Andiamo dalla 1 all'ultima lettera, se all'i-esimo posto c'è la A, la mettiamo i-esimo posto DI.

Diapositiva 20

Sostituzione di caratteri nella riga 19 Inizio Ingresso S i,1,lunghezza(e) Si ="A" Si ="O" Uscita S Fine Sì No Diagramma di flusso per il problema della sostituzione della lettera A con O

Diapositiva 21

Attività 9 Rimuovi tutte le lettere R (latino, maiuscolo) dalla stringa inserita dalla tastiera. Programma n7; Utilizza Crt; var a,b:Stringa; i:intero; inizioClrScr; Write("InLine = ");readln(a); b:=""; for i:=1 to length(a) doif (a[i]'R") then b:=b+a[i]; a:=b; writeln(a); end. Itera da 1 all'ultima lettera Preparare una variabile aggiuntiva Se non c'è R all'i-esimo posto, aggiungiamo questa lettera a ciò che è in B. Ciò che è successo in B viene spostato di nuovo in A. Rimozione di caratteri dalla stringa 20

Diapositiva 22

Rimozione di caratteri dalla stringa 21 Inizio Input A i,1,length(A) Ai "R" B=B+ Ai Output A Fine Sì No Diagramma di flusso per il problema della rimozione delle lettere R dalla stringa B="" A=B

Diapositiva 23

Condizioni nidificate. 22 iniziano clRscr; Leggi; for i:=1 a length(s) fai if (s[i]="a") o (s[i]="b") then if (s[i]="a") then s[i] :="b" altrimenti s[i]:="a"; scrittura(i); FINE. Problema 10. Dall'intera stringa dobbiamo selezionare solo A e B e solo dopo effettuare la sostituzione

Diapositiva 24

Condizioni nidificate 23 Inizio Ingresso S i, 1, lunghezza(S) Si ="a" Si ="b" Si ="a" Uscita S Fine Si ="a" o Si ="b" Sì No Sì No Schema a blocchi per il problema di sostituire A con B e viceversa

Diapositiva 25

I cicli nidificati 24 iniziano con ClrScr; Write("InLinea"); leggere(i); s1:=",.;:"!?-"; per i:=1 fino a lunghezza(s1) inizia k:=0; per j:=1 fino a lunghezza(s) esegui se (s[j]=s1 [i]) then k:=k+1; if (k0) then writeln(s1[i]," - ",k:5," times"); end; end. Problema 11. Ciclo esterno che enumera i segni scritti in S1 Il corpo del ciclo esterno contiene un ciclo responsabile dell'enumerazione dei caratteri della stringa immessa

Diapositiva 26

Cicli annidati 25 Ingresso avvio S i, 1, lunghezza(S1) s1=",.;:"!?-" K=0 j, 1, lunghezza(S) Sj = S1i Sì No K=K+1 K0 Uscita S1i ,K No Sì Fine Diagramma di flusso per il problema del conteggio dei segni di punteggiatura

Visualizza tutte le diapositive

Astratto

�PAGINA � �PAGINA �1�

Blocco 1.

Teoria.

Diapositiva 1

Diapositiva 2

Diapositiva 3.

Diapositiva 4

Diapositiva 5. La soluzione al problema è stata analizzata:

Diapositiva 6.

Diapositiva 7.

Crea un programma che ritagli le lettere dalla parola INFORMATICA in modo che formino la parola TORTA.

Blocco 2.

Data una stringa di caratteri a1+a2=. Dove 1<=а1 и а2<=9. Составить программу, вычисляющую это выражение. Измените программу так, что бы вместо знака «+» можно было писать « - », « * », « / ».

Problemi per una soluzione aggiuntiva:

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

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

Blocco 3.

Blocco 4.

Data una stringa di caratteri. Determina quante volte appare la lettera A (russa).

Problemi per una soluzione aggiuntiva:

Data una stringa di caratteri. Determina quante volte appare la lettera A (russa).

Blocco 5.

Data una stringa di caratteri. Sostituisci tutte le lettere A con la lettera O.

Problemi per una soluzione aggiuntiva:

Blocco 6.

Problemi per una soluzione aggiuntiva:

Blocco 7.

Nel testo fornito, sostituisci ovunque la lettera “a” con la lettera “b” e la lettera “b” con la lettera “a”.

Data una stringa di caratteri contenente segni di punteggiatura. Conta cosa e quanti segni di punteggiatura contiene una riga.

Problemi per una soluzione aggiuntiva:

�PAGINA � �PAGINA �1�

Descrizione della presentazione “Stringhe in Pascal”

Questa presentazione può essere utilizzata quando si studia l'argomento "Stringhe nel linguaggio di programmazione Pascal" quando si insegna la programmazione in linguaggio Pascal. Discute la definizione e la descrizione di una variabile stringa, le funzioni per lavorare con le stringhe ed esamina anche diverse attività tipiche quando si lavora con le stringhe. La presentazione contiene 24 diapositive, combinate in 7 blocchi.

Breve navigazione attraverso le diapositive e compiti aggiuntivi che gli studenti possono risolvere in modo indipendente:

Blocco 1.

Teoria.

Diapositiva 1 . Viene fornita la definizione di una variabile stringa, nonché il metodo di descrizione nella sezione di descrizione della variabile.

Diapositiva 2 . Vengono mostrate le regole per confrontare le stringhe nel linguaggio Pascal e due esempi che illustrano queste regole.

Diapositiva 3. Vengono mostrati esempi di combinazione di più righe in una.

Diapositiva 4 . Viene fornita la definizione della funzione Length(). E vengono analizzate due soluzioni al problema:

Scrivi un programma per contare il numero di lettere in una parola.

Il primo metodo, mediante l'operazione di assegnazione, assegna il numero di caratteri di una stringa ad una variabile di tipo intero e la visualizza sullo schermo. Nel secondo metodo, la funzione Length() viene inserita direttamente nell'istruzione Writeln.

Diapositiva 5. La soluzione al problema è stata analizzata:

Confronta la lunghezza di due corde inserite dalla tastiera.

In esso, è necessario determinare la lunghezza di due stringhe e utilizzare l'operatore di ramo per confrontare le lunghezze di queste stringhe.

Diapositiva 6. Viene fornita la definizione della funzione Copy(). Lo screenshot mostra un esempio di come funziona questa funzione con i commenti necessari.

Diapositiva 7. Vengono mostrati due modi per risolvere il problema:

Crea un programma che ritagli le lettere dalla parola INFORMATICA in modo che formino la parola TORTA.

Nel primo caso il taglio viene effettuato utilizzando la funzione Copia, nel secondo utilizzando la rappresentazione della stringa come un array di caratteri.

Problemi per una soluzione aggiuntiva:

Scrivere un programma che chieda il nome di una persona e lo visualizzi sullo schermo con un saluto.

Scrivere un programma che richieda il nome e il cognome di una persona e li visualizzi su una riga insieme al saluto.

Si inseriscono due righe dalla tastiera, si determina quale è più lunga e di quanto, e si visualizza sullo schermo il messaggio corrispondente.

Viene inserita una stringa di caratteri dalla tastiera, visualizzare il carattere al kesimo posto. k – inserito dalla tastiera.

Una parola viene inserita dalla tastiera, è corretto che inizi e finisca con la stessa lettera?

Vengono fornite due parole. È vero che la prima parola termina con la stessa lettera della seconda?

Ricavare dalla parola "INTEGRAL" le parole "DUMBELLS", "X-RAY", "TIGER", "AGENT".

Creare un programma che controlli l'ortografia dei prefissi raz- e ras- in una parola inserita dalla tastiera e, se necessario, corregga l'errore.

Blocco 2.

Funzioni di conversione del tipo.

Diapositiva 8. Viene fornita una descrizione della procedura Srt(). Si analizza la soluzione del problema:

Scrivere un programma che stampi la prima e l'ultima cifra di un numero naturale digitato da tastiera.

In esso, un numero naturale viene convertito in una stringa utilizzando la procedura Str(), quindi il primo e l'ultimo carattere vengono visualizzati sullo schermo. Qui è imperativo dire agli studenti che questo metodo non è adatto a tutti i casi, ad esempio, nei problemi delle Olimpiadi, spesso viene posta la condizione che un tipo di dati carattere non possa essere utilizzato e/o un numero naturale contenga più di 255 cifre, ecc. .

Diapositiva 9. Viene fornita la definizione della procedura Val().

Diapositiva 10. Mostra esempi di conversione di varie stringhe contenenti numeri in un numero naturale.

Diapositiva 11. Mostra le funzioni per la conversione di tipi numerici e di caratteri nel sistema di programmazione PascalABC. Questo può essere molto utile se prevedi di passare all'apprendimento di Lazarus o Delphi in futuro.

Diapositiva 12. Viene mostrata la soluzione al problema:

Data una stringa di caratteri a1+a2=. Dove 1<=а1 и а2<=9. Составить программу, вычисляющую это выражение. Измените программу так, что бы вместо знака «+» можно было писать « - », « * », « / ».

Considera il caso più semplice, quando le azioni vengono eseguite con due numeri naturali a una cifra. In futuro, a seconda del livello degli studenti, questo compito potrà essere reso sempre più difficile. Aggiunta di numeri a più cifre, numeri negativi, esponenziazione, parentesi e terminazione, ad esempio, con un calcolo o una conversione della notazione polacca.

Problemi per una soluzione aggiuntiva:

Data una stringa che rappresenta la notazione decimale di un intero positivo. Stampa una stringa che rappresenta la rappresentazione binaria dello stesso numero.

Data una stringa che rappresenta un numero intero positivo. Trova la somma delle cifre di questo numero.

Dato un testo della forma a1+a2 +a3+…+ai. Dove ai sono numeri interi (0<=аi<=9). Составить программу, вычисляющую эту сумму.

Dato un testo che ha la forma a1 - a2 + a3 - ... + ai. Dove ai sono numeri interi (0<=аi<=9). Составить программу, вычисляющую эту алгебраическую сумму.

Il numero è indicato nel sistema numerico esadecimale. Stampa una riga che rappresenta la notazione decimale dello stesso numero.

Data una stringa che rappresenta la rappresentazione binaria di un intero positivo. Stampa una riga che rappresenta la notazione decimale dello stesso numero.

Blocco 3.

Funzioni per lavorare con i codici dei caratteri.

Diapositiva 13. Vengono definite le funzioni ORD e CHR. Viene mostrata una schermata del programma che illustra il funzionamento della funzione Chr.

Diapositiva 14. Viene mostrata la soluzione al problema:

Scrivere un programma che, in base ad un carattere immesso dalla tastiera, ne visualizzi il numero nella tabella dei codici.

È necessario notare qui che la funzione Ord funziona solo con il tipo di dati carattere (char). Perché molto spesso gli studenti non capiscono la differenza tra i tipi di caratteri e quelli di stringa.

Blocco 4.

Problemi che riguardano il conteggio di qualcosa in una riga.

Diapositiva 15. Viene mostrata la soluzione al problema:

Data una stringa di caratteri. Determina quante volte appare la lettera A (russa).

Questo problema illustra un modo per cercare caratteri in una stringa. È bene notare che per cercare una stringa all'interno di una stringa è più opportuno utilizzare la funzione Copia.

Diapositiva 16. Contiene un promemoria che se è necessario cercare più caratteri in una riga, alleghiamo le condizioni tra parentesi del programma BEGIN ... END

Diapositiva 17. Viene mostrato il diagramma di flusso dell'attività della diapositiva 15.

Problemi per una soluzione aggiuntiva:

Data una stringa di caratteri. Determina quante volte appare la lettera A (russa).

Data una stringa che rappresenta un'espressione algebrica, controlla l'accoppiamento delle parentesi al suo interno. Visualizza il risultato sullo schermo.

Il testo è dato. Determina quante lettere vicine identiche contiene.

Il testo è dato. Determina il numero di parole in una frase.

Il testo è dato. Determina quali lettere M o N ci sono di più al suo interno.

Il testo è dato. Determina quante parole in questo testo iniziano con la lettera A.

Data una stringa di caratteri contenente due punti (:). Determina quanti caratteri lo precedono.

Data una stringa di caratteri. Determina quante volte il gruppo di lettere ABC è incluso in esso.

Il testo è dato. Contiene almeno due lettere K. Determina i numeri di serie della prima e dell'ultima lettera K.

Il testo è dato. Determina quale delle lettere C o T appare per prima.

Il testo è dato. Determina il numero di lettere N che precedono la prima virgola nella frase.

Dato un testo contenente due virgole. Contare il numero di caratteri situati tra queste virgole.

Blocco 5.

Attività per modificare i caratteri in una stringa senza modificarne la lunghezza.

Diapositiva 18. Viene mostrata la soluzione al problema:

Data una stringa di caratteri. Sostituisci tutte le lettere A con la lettera O.

Questo problema mostra come modificare una stringa senza modificarne la lunghezza.

Diapositiva 19. Viene mostrato il diagramma di flusso dell'attività della diapositiva 18.

Problemi per una soluzione aggiuntiva:

Data una stringa di caratteri. Sostituisci tutte le lettere nei posti pari con la lettera O.

Data una stringa di caratteri. Sostituisci la combinazione di lettere "min" con "max" nel testo fornito.

Data una stringa di caratteri. Sostituisci tutti gli spazi con il segno "_".

Trova la prima e l'ultima lettera K nel testo inserito dalla tastiera. E sostituiscili con "*".

Crea un programma che corregga l'ortografia di "ZHI" e "SHI" in una parola inserita dalla tastiera.

Blocco 6.

Attività relative alla modifica della lunghezza di una linea.

Diapositiva 20. Viene mostrata la soluzione al problema:

Rimuovere tutte le lettere R (latino, maiuscolo) dalla stringa inserita dalla tastiera.

Questa attività mostra come cambia una stringa al variare della sua lunghezza.

Diapositiva 21. Viene mostrato il diagramma di flusso dell'attività della diapositiva 20.

Problemi per una soluzione aggiuntiva:

Rimuovi tutte le lettere A (latino, maiuscolo) dalla stringa inserita dalla tastiera.

La parola è stata data. Controlla se è un cambio. Cioè, si legge allo stesso modo dalla fine e dall'inizio. (Ad esempio: ANNA, SHALASH.)

In una determinata parola, sostituisci ogni lettera “b” con la combinazione di lettere “ku”.

Scrivere un programma che rimuova qualsiasi lettera da un dato testo. (Inserisci testo e lettera dalla tastiera).

Per progettare intestazioni e parole logicamente importanti, i caratteri del testo vengono alternati con spazi. Scrivere un programma che esegua tale operazione.

Da questo testo eliminare tutte le lettere “C” che precedono la lettera “T”.

Dopo ogni lettera P inserire tre punti esclamativi “!!!”.

Blocco 7.

Problemi con rami e loop annidati.

Diapositiva 22. Viene mostrata la soluzione al problema:

Nel testo fornito, sostituisci ovunque la lettera “a” con la lettera “b” e la lettera “b” con la lettera “a”.

Una soluzione diretta a questo problema “frontalmente” non produce risultati. Qui devi selezionare solo le lettere necessarie in modo che il resto non cambi. Quindi, a seconda della lettera trovata, effettua una sostituzione utilizzando la condizione completa.

Diapositiva 23. Viene mostrato il diagramma di flusso dell'attività della diapositiva 22.

Diapositiva 24. Viene mostrata la soluzione al problema:

Data una stringa di caratteri contenente segni di punteggiatura. Conta cosa e quanti segni di punteggiatura contiene una riga.

Questo problema mostra un esempio di utilizzo di cicli annidati per confrontare due stringhe. È possibile risolvere questo problema utilizzando un gran numero di condizioni, ma tale soluzione, a mio avviso, non sarà razionale.

Problemi per una soluzione aggiuntiva:

Data una stringa di caratteri (russo). Determina il numero di vocali in questa riga.

Data una stringa di caratteri (inglese). Determina quali e quante vocali contiene la riga.

Data una stringa di caratteri. Determina quali caratteri hanno più vocali o consonanti.

Date due stringhe A e B. Determinare se è possibile formare la stringa B dalle lettere della stringa A. Inoltre, ogni lettera può essere utilizzata una volta. Le lettere possono essere riorganizzate. (Ad esempio: puoi ottenere un AGENTE da INTEGRAL, ma non un GRAPH).

Il testo è dato. Determina quale ha più numeri o lettere.

Vengono fornite due righe. Contare e visualizzare il numero di lettere comuni. (Lettere che compaiono nella prima e nella seconda riga).

Dal testo fornito, seleziona e visualizza i caratteri che compaiono in esso esattamente una volta.

Per avvisare del fallimento dell'operazione, Eustace ha ideato il seguente metodo di notifica. Invia un telegramma, il cui testo contiene i caratteri “b”, “e”, “d”, “a”, necessariamente in quest'ordine, ma non necessariamente in fila. Crea un programma che ti permetta di determinare se il testo inviato è una notifica di errore o meno.

Per consolidare l'argomento, è necessario risolvere quanti più problemi possibile. Il loro numero dipende direttamente dal numero di ore destinate allo studio di un determinato argomento e del corso di programmazione nel suo insieme.

Secondo me, i libri sui problemi di programmazione di maggior successo sono:

Raccolta di problemi di programmazione. 2a edizione. Autore D.M. Zlatopolsky. Pubblicato a San Pietroburgo "BHV-Petersburg" nel 2007.

Versione elettronica del Programming Taskbook Versione 4.6. Autore ME Abramyan. Distribuito con il sistema di programmazione Pascal ABC.

Presentano problemi su tutti gli argomenti del corso di programmazione.

Basandomi su questi libri di problemi e su alcune altre fonti, ho creato il mio mini libro di problemi dividendo i problemi in tre gruppi di difficoltà A, B e C.

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

Scarica l'estratto

Per utilizzare le anteprime delle presentazioni, crea un account Google e accedi ad esso: https://accounts.google.com


Didascalie delle diapositive:

Tipi di dati di testo e caratteri Pascal La presentazione è stata preparata dall'insegnante di informatica Tatyana Petrovna Kareva MBOU Gymnasium No. 6 di Mezhdurechensk, regione di Kemerovo

Le macchine informatiche non si occupano solo di numeri. Trascorrono quasi più tempo impegnati nell'elaborazione del testo. Pascal ha un tipo di dati speciale per questo, chiamato CHAR (dalla parola carattere). Digitare CHAR (carattere, stringa o valore letterale). I suoi significati sono caratteri individuali: lettere, numeri, segni. Le costanti di carattere sono racchiuse tra virgolette, ad esempio 'A', 'B', 'C', '4','7', ' '(spazio). Le variabili carattere sono descritte dalla clausola Var variable name: char ;

I valori dei caratteri possono essere immessi ed emessi, assegnati e confrontati. Di seguito è riportato un esempio in cui vengono eseguiti tutti questi passaggi. Var x, y: carattere; Inizia Scrivi('Inserisci carattere'); leggiln(x); Y:='A'; Se x

È possibile confrontare i simboli perché sono archiviati nella memoria del computer come numeri interi (codici carattere). Di due simboli, quello il cui codice è più grande è considerato più grande. I caratteri sono ordinati come segue: ‘ A ’=,.

Funzioni simboliche standard. Pascal ha funzioni simboliche standard: CHR (N) – restituisce al programma il simbolo con il codice N, ORD (S) – restituisce il codice del simbolo S, PRED (S) – restituisce il simbolo precedente SUCC (S) – restituisce il simbolo simbolo successivo ESEMPI: CHR ( 128) = B ORD (':') = 58 PRED(' B ') = A SUCC(' G ') = D

Ogni personaggio ha il suo codice binario univoco. I codici di tutti i simboli sono riepilogati in una tabella. La prima metà della tabella è diventata uno standard internazionale chiamato ASCII - American Standard Code Information Interchange (letto come “ask code”), tra l'altro contiene l'alfabeto latino, la seconda ha diverse opzioni per le diverse lingue. L'alfabeto cirillico (alfabeto russo) ha diversi standard. Pascal utilizza lo standard KOI-8.

ESEMPIO di utilizzo di una variabile di tipo carattere. Creare un programma in cui il computer calcoli ripetutamente la somma A + B per diversi valori di A e B. Alla fine di ogni fase appare una richiesta per continuare o interrompere i calcoli: “Terminare il programma? (S/N ).” Var A, B: reali; C: salmerino; Inizia la ripetizione Write('Inserisci due numeri'); Leggiln(a,b); Scriviln(a + b:0:2); Writeln('Fine programma?(S/N)'); Leggi(c); Fino a c='D'; (il programma uscirà se viene inserito D) Readln End.

Compiti di formazione. 1 . Cosa restituirà la funzione CHR(ORD(X))? 2. Determinare i valori delle seguenti funzioni: CHR(68) ORD('d') PRED(1) SUCC(' I ') 3. Creare un programma in cui il computer trovi il prodotto di numeri dispari, a partire da uno, e fino alla domanda posta dopo ogni passo di calcolo: “Continuare i calcoli? (S/N)”, rispondere “S”.

Per gestire unità di testo più grandi - stringhe - è stato introdotto un tipo di dati chiamato STRING. I valori di questo tipo sono stringhe di qualsiasi carattere fino a una lunghezza massima di 255. Le variabili stringa devono essere descritte dalla clausola: Nome VAR: STRING Le stringhe possono essere assegnate, confrontate, immesse, emesse e concatenate. La connessione è indicata dal segno "+". Ecco alcuni esempi di alcune operazioni di confronto sulle stringhe: "tabella"

Tra tutti i possibili valori di stringa c'è una stringa vuota. È rappresentato da due apostrofi (virgolette singole) senza nulla tra di loro. Per inserire questo carattere in una stringa, è necessario ripeterlo due volte. Ad esempio, l'operatore di scrittura ("about""fenomeno") visualizzerà: "dichiarazione". Il programmatore ha accesso ai singoli caratteri di una variabile stringa; per questo, oltre al nome della variabile, è necessario indicare il seriale numero del carattere nella riga. Ad esempio, se viene descritta la variabile X:STRING, allora X è il primo carattere della stringa, X è il secondo, ecc. X ha un ruolo speciale: memorizzare la lunghezza della stringa . Il valore di X è il carattere il cui codice è uguale al numero di caratteri nella stringa. Ma per determinare la lunghezza di una variabile stringa, di solito viene utilizzata la funzione LENGTH(variabile stringa). Ad esempio, se N:=LENGTH( x); - A N verrà assegnato un valore pari al numero di caratteri della riga.

Quando descriviamo una variabile stringa, possiamo limitare la lunghezza della stringa specificandone la dimensione massima possibile, quindi nella stringa verrà memorizzato solo il numero di caratteri specificato. Var a,b:stringa ; Begin Write("inserisci una parola"); leggiln(a); scrivere un); readlnend. Se si immette la parola CORN durante l'esecuzione di questo programma, il programma stamperà COOK.

RICORDARE. Se durante l'esecuzione del programma è necessario inserire un valore per più variabili stringa, ciascuna di esse deve avere la propria istruzione di input READLN. Ad esempio, Var a,b,c:string ; iniziare readln(a); leggiln(b); leggiln(c); scrivi(a+b+c); readlnend. Controlla cosa succede se scrivi READLN(a,b,c); o LEGGI(a,b,c).

Esempio 1. Creare un programma che determini quale dei due cognomi è più lungo. I cognomi hanno lunghezze diverse. Var a,b:stringa ; iniziare readln(a); leggiln(b); se lunghezza(a)>lunghezza(b) allora scrivi(a) altrimenti scrivi(b); readlnend.

Esempio 2. Vengono fornite due parole. Scrivere un programma per determinare se è vero che la prima parola inizia con la stessa lettera con cui termina la seconda parola. Var x,y:byte ; a,b:stringa ; iniziare readln(a); leggiln(b); x:=lunghezza(b); (determiniamo la lunghezza della parola b per scoprire il numero dell'ultimo carattere) se a=b[x] allora scrivi ("vero") altrimenti scrivi ("sbagliato"); fine lettura.

Compiti di formazione. 1. Viene fornito il nome della città. Determina se il numero di caratteri in esso contenuti è pari o dispari. 2. La parola è data. Visualizza il suo terzo carattere e il suo ultimo carattere due volte. 3. La parola è data. È vero che inizia e finisce con la stessa lettera? 4. La parola è data. Ricevi e visualizza una combinazione di lettere composta dal terzo e ultimo carattere. 5. Creare un programma che richieda il nome di una squadra di calcio e lo ripeta sullo schermo con la scritta: “Questo è il campione!”

Per lavorare con le variabili stringa in Pascal, esiste una serie di procedure e funzioni standard. Il loro utilizzo semplifica la risoluzione dei problemi. Vorrei ricordarti che il risultato dell'esecuzione di una funzione deve essere memorizzato in una variabile del tipo appropriato, a meno che ovviamente essa, la funzione, non sia un elemento dell'espressione. Funzione per copiare una stringa o parte di essa. S:=COPIA(stringa, posizione, N); La funzione di copia è anche chiamata "taglio". Il risultato dell'esecuzione della funzione sarà una parte della stringa a partire dalla posizione specificata di lunghezza N.

Esempio: viene fornita una proposta. Determina il numero di serie della prima lettera "k" incontrata. Se non esiste tale lettera, segnalalo. Var x: intero; una stringa; Begin Write("Inserisci una frase"); leggiln(a); x:=pos(" a ",a); se x=0 allora writeln ("Non esiste una lettera del genere") else writeln (x); readlnend.

Procedura per cancellare parte di una stringa DELETE(riga, numero iniziale, numero di caratteri) Rimuove il numero di caratteri specificato dalla stringa sorgente. Esempio: data una parola composta da un numero pari di lettere. Visualizza la sua prima metà. Var i,x:byte ; a,p:stringa; comincia a ripetere la scrittura ("Inserisci una parola con un numero pari di lettere"); leggiln(a); x:=lunghezza(a); (determiniamo la lunghezza della parola) fino a (x mod 2 = 0); x:= xdiv2; (usa la divisione intera) cancella (a,x+1,x); scrivere un); fine lettura.

Procedura per inserire una sottostringa in una stringa INSERT(line1, line2, position); La linea1 viene inserita nella linea2 a partire dalla posizione specificata. Compiti di formazione. 1. Viene data una proposta. Determina il numero di occorrenze di un determinato simbolo. 2. Viene data una proposta. Sostituisci tutte le occorrenze della combinazione di lettere “ah” con “uh”. 3. La parola è data. Verificare se si tratta di una “inversione”, cioè si legge allo stesso modo dall'inizio alla fine. 4. La parola è data: a. rimuovere la prima lettera "o" da esso, se esiste tale lettera; B. rimuovi l'ultima lettera "t", se esiste una lettera del genere. 5. Viene data una proposta. Rimuovi tutte le lettere "s" da esso.


Diapositiva 1

Diapositiva 2

Una stringa è un array di caratteri, ad es. elementi di tipo char. In Pascal, una stringa ha un tipo di dati String. var Nome: string [Lunghezza]; Se la lunghezza non è specificata, la memoria viene allocata per una stringa fino a 255 caratteri. Teoria 1 var s1:string; stringa 255 caratteri var s2:string; stringa di 20 caratteri

Diapositiva 3

Regole: le stringhe sono uguali solo se hanno lo stesso set di caratteri e la stessa lunghezza; Ad esempio: "ABC"="ABC" e "ABC"≠"abc" altrimenti avviene un confronto elemento per elemento dei caratteri in base ai loro codici: "0"

Diapositiva 4

Teoria 3 Collegamento di due stringhe. s1:="2011" + "anno"; Scriviln(s1); s1:="10"; s2:="classe"; s3:=s1+" "+s2; Scriviln(s3);

Diapositiva 5

Funzione Lunghezza La funzione Lunghezza(S) determina la lunghezza corrente della stringa S. Il risultato è un valore intero. Teoria 4 PROGRAMMA Lunghezza_1; VAR S: STRINGA; n:INTERO; BEGIN Writeln('inserisci la parola "); Readln(S); n:= Lunghezza (S) ; Writeln('inserisci la parola ", n:5, " lit.."); FINE. Scriviamo la lunghezza della stringa in una variabile di tipo intero PROGRAM Dlina_2; VAR S: STRINGA; BEGIN Writeln('inserisci una parola') ; Leggi(S); Writeln('la parola è composta da', Lunghezza (S),'lettere.'); FINE. Visualizziamo la lunghezza della stringa come risultato dell'esecuzione della funzione Attività 1. Creare un programma che conti il ​​numero di lettere in una parola.

Diapositiva 6

Usacrt; var a,b:stringa; m,n:Intero; Inizia Clrscr; Writeln("Inserisci la prima riga");Readln(a); Writeln("Inserisci la seconda riga "); Readln(b); m:=Lunghezza(a); n:=Lunghezza(b); if (m=n) then writeln("Le righe sono uguali"); if (m>n) then writeln("Il primo è maggiore"); se (M

Diapositiva 7

Funzione Soru La funzione Soru (S, P, N) estrae dalla stringa S una sottostringa di N caratteri, a partire dalla posizione P. Qui N e P sono espressioni intere. Teoria 6 Nella frase MOTHER SOAPED RAMU, la parola RAMU inizia con l'undicesima lettera ed è composta da 4 lettere COPY(s1,11,4)

Diapositiva 8

Attività 3. Crea un programma che taglia le lettere della parola INFORMATICA in modo che formino la parola TORTA. Programma n3_1; Usacrt; var a,b,c,d:stringa; Inizia Clrscr; a:="informatica"; b:=""; c:=copia(a,8,1); d:=copia(a,4,2); b:=c+d+c; scriviln(b); FINE. Compito per comporre stringhe 7 Usiamo la funzione di lavorare con variabili simboliche COPIA Seconda opzione: Programma n3_2; Usacrt; var a,b:stringa; Inizia Clrscr; a:=‘informatica"; b:=a+a+a+a; writeln(b); End. Usiamo la definizione di stringa come array di caratteri

Diapositiva 9

Conversione del tipo 8 La funzione STR Str(x, S) converte il numero x in formato stringa. Dove x è una qualsiasi espressione numerica, S è una variabile stringa. Compito 4. Scrivere un programma che stampi la prima e l'ultima cifra di un numero naturale digitato da tastiera. PROGRAMMA Primer; utilizza Crt; VAR S: STRINGA; n:INTERO; BEGIN Write("Inserisci un numero ");readln(n); Str(n,S); Writeln("Prima cifra -",S); Writeln("L'ultima cifra è ",S); FINE. Convertire un numero naturale in una stringa

Diapositiva 10

La procedura val consente di convertire i caratteri digitali (l'immagine di un numero) in un numero. In generale, una chiamata a una procedura si presenta così: VAL (Stringa, Numero, Codice) ; dove String è una costante o variabile stringa contenente l'immagine di un numero; Numero – una variabile di tipo intero o frazionario a cui deve essere assegnato un valore Codice – codice di errore restituito dalla procedura (intero) Conversione di tipo 9 Procedura VAL

Diapositiva 11

Digita conversione 10 BEGIN s1:="123456789"; val(s1,n,codice); Scriviln(n); FINE. INIZIO s1:="123456789ABCDE"; val(s1,n,codice); Scriviln(n); FINE.

Diapositiva 12

s1:="ABCDE123456789"; val(s1,n,codice); Scriviln(n); PascalABC ha un arsenale di trasformazioni più sviluppato come DELPHI: S:=IntToStr(N) - converte un numero intero in una stringa; n:=StrToInt(S) - converte una stringa in un numero intero S:=FloatToStr(r) - converte un numero reale in una stringa R:=StrToFloat(s) converte una stringa in un numero reale. Se la conversione non è possibile, si verifica un errore di runtime Type Conversion 11

Diapositiva 13

Diapositiva 14

Simboli e relativi codici 13 Funzioni ORD e CHR Funzione Ord(S) – determina il numero di serie del simbolo. Funzione Chr(i) – determina il carattere con il numero di serie i Utilizzando il numero 255, deriviamo il carattere dalla tabella dei codici I

Diapositiva 15

Simboli e relativi codici 14 Attività 6. Creare un programma che, in base a un simbolo immesso dalla tastiera, visualizzi il suo numero nella tabella dei codici. PROGRAMMA Primer; utilizza Crt; VAR S: carattere; n,codice:INTERO; BEGIN Write("Inserisci il carattere ");readln(s); Writeln("Il simbolo ", s," ha il codice -",ord(s)); FINE. La funzione ORD funziona solo con il tipo di dati carattere

Diapositiva 16

Problema 7. Data una stringa di caratteri. Determina quante volte appare la lettera A (russa). Programma n5; Utilizza Crt; Var s:stringa; i,k:intero; inizioClrScr; Write("Inserisci una stringa"); leggere(i); k:=0; for i:=1 a length(s) fai if (s[i]="A") then k:=k+1; writeln("La lettera A ricorre = ", k:8," volte"); FINE. Itera da 1 all'ultima lettera Se A è all'i-esimo posto, aumenta K di 1 Contando i caratteri nella riga 15

Diapositiva 17

Nota 16 for i:=1 to length(s) do Begin if (s[i]=…… if (s[i]=…… end; Nota: se è necessario cercare più caratteri in una riga, allora racchiudere le condizioni tra parentesi del programma BEGIN...END

Diapositiva 18

Conteggio dei caratteri nella riga 17 Inizio Ingresso S i,1,lunghezza(e) Si ="A" K=K+1 Uscita K Fine Sì No Diagramma di flusso per il compito di contare le lettere A nella riga K=0

Diapositiva 19

Sostituzione di caratteri nella riga 18 Problema 8. Data una stringa di caratteri. Sostituisci tutte le lettere A con la lettera O. Programma n6; Utilizza Crt; Var s:stringa; i:intero; inizioClrScr; Write("Inserisci una stringa"); leggere(i); for i:=1 a length(s) fai if (s[i]="A") then s[i]:="O"; scrittura(i); FINE. Andiamo dall'1 all'ultima lettera: se A è all'i-esimo posto, metti O all'i-esimo posto.

Diapositiva 20

Sostituzione di caratteri nella riga 19 Inizio Ingresso S i,1,lunghezza(e) Si ="A" Si ="O" Uscita S Fine Sì No Diagramma di flusso per il problema della sostituzione della lettera A con O

Diapositiva 21

Attività 9 Rimuovi tutte le lettere R (latino, maiuscolo) dalla stringa inserita dalla tastiera. Programma n7; Utilizza Crt; var a,b:Stringa; i:intero; inizioClrScr; Write("Inserisci stringa = "); readln(a); b:=""; for i:=1 to length(a) do if (a[i]'R") then b:=b+a[i]; a:=b; writeln(a); end. Itera da 1 all'ultimo lettera Prepariamo una variabile aggiuntiva. Se non c'è R all'i-esimo posto, aggiungiamo questa lettera a ciò che è in B. Spostiamo ciò che è successo in B nuovamente in A. Rimozione di caratteri dalla riga 20

Pubblicazioni sull'argomento