Type de données caractère dans la présentation Pascal. Présentation sur le thème Chaînes en Pascal




Syntaxe : var s : string[n] ; var s1 : chaîne ; n - longueur de chaîne maximale possible - un entier dans la plage. Si ce paramètre est omis, il est défini par défaut sur 255.


Les constantes de chaîne sont écrites sous forme de séquences de caractères délimitées par des apostrophes. S: = "Chaîne de texte"


Un caractère vide est indiqué par deux apostrophes consécutives. Si une apostrophe est incluse dans une ligne en tant que caractère, elle est alors doublée lors de son écriture. Les variables déclarées sous forme de chaînes avec des longueurs maximales différentes peuvent être attribuées les unes aux autres, bien que si vous essayez d'attribuer une variable courte à une variable longue, les caractères supplémentaires seront ignorés. Les expressions de type char peuvent être affectées à n'importe quelle variable de chaîne.


Pascal permet d'accéder facilement aux caractères individuels d'une variable chaîne : i-ème personnage la variable st s'écrit st[i]. Par exemple, si st est "String", alors st est "C", st est "t", st est "p", et ainsi de suite.


Une opération de fusion (concanténation) est définie sur des données de chaîne, indiquée par le signe +. Par exemple : a:= "Turbo" ; b:= "Pascal"; c:= une + b; Dans cet exemple, la variable c deviendra "TurboPascal".


Procédures et fonctions pour travailler avec des chaînes 1)n:= length("Pascal"); (n sera égal à 6) 2) s:= "Système Turbo Pascal"; s2:= copie(s, 1, 7); (s2 sera égal à "Système") s3:= copy(s, 9, 5); (s3 sera égal à "Turbo") s4:= copy(s, 15, 6); (s4 sera égal à "Pascal")

Présentation sur le thème "Strings in Pascal" en informatique en format PowerPoint. Cette présentation destinée aux écoliers de 10e année traite du matériel théorique et des tâches sur le thème des données de chaîne dans le langage de programmation Pascal. Auteur de la présentation : professeur d'informatique, Yudin A.B.

Fragments de la présentation

Théorie

  • Une chaîne est un tableau de caractères, c'est-à-dire éléments de type char. En Pascal, une chaîne a un type de données String.
  • Si la longueur n'est pas spécifiée, la mémoire est allouée pour une chaîne pouvant contenir jusqu'à 255 caractères.
  • Tâche 1. Créer un programme qui compte le nombre de lettres dans un mot.
  • Tâche 2. Comparez la longueur de deux lignes saisies au clavier.

Fonction Soru

  • La fonction Copy(S, P, N) extrait une sous-chaîne de N caractères de la chaîne S, en commençant à la position P. Ici, N et P sont des expressions entières.
  • Tâche 3. Créer un programme qui coupe les lettres du mot COMPUTER SCIENCE afin qu'elles forment le mot CAKE.
  • Tâche 4. Écrivez un programme qui imprime le premier et le dernier chiffre d'un nombre naturel saisi au clavier.

Procédure VAL

La procédure val permet de convertir des caractères numériques (l'image d'un nombre) en nombre. DANS vue générale l'appel de la procédure ressemble à ceci :

  • VAL (Chaîne, Nombre, Code) ;
  • où String est une constante ou une variable chaîne contenant l'image d'un nombre ;
  • Nombre – une variable de type entier ou fractionnaire à laquelle une valeur doit être attribuée
  • Code – code d'erreur renvoyé par la procédure (entier)

Conversion de types

PascalABC dispose d'un arsenal de transformations plus avancé comme DELPHI :

  • S:=IntToStr(N) - convertit un entier en chaîne ;
  • n:=StrToInt(S) - convertit une chaîne en entier
  • S:=FloatToStr(r) - convertit un nombre réel en chaîne
  • R:=StrToFloat(s) convertit une chaîne en nombre réel.

Si la conversion n'est pas possible, une erreur d'exécution se produit

Fonctions ORD et CHR

  • Fonction Ord(S) – détermine le numéro ordinal du symbole.
  • Fonction Chr(i) – détermine le caractère avec le numéro de série i

Tâche 6. Créez un programme qui, en fonction d'un caractère saisi au clavier, affiche son numéro dans la table de codes.

Compter les caractères dans une ligne

Problème 7. Étant donné une chaîne de caractères. Déterminez combien de fois la lettre A (russe) y apparaît.

Remplacer des caractères dans une chaîne

Problème 8. Étant donné une chaîne de caractères. Remplacez toutes les lettres A qu'il contient par la lettre O.

Supprimer des caractères d'une chaîne

Tâche 9 Supprimez toutes les lettres R (latin, majuscule) de la chaîne saisie au clavier.

Conditions imbriquées

Tâche 10. Dans le texte donné, partout dans le texte donné, remplacez la lettre « a » par la lettre « b » et la lettre « b » par la lettre « a ».

Boucles imbriquées

Problème 11. Étant donné une chaîne de caractères contenant des signes de ponctuation. Comptez quoi et combien de signes de ponctuation contient une ligne.


























Activer les effets

1 sur 26

Désactiver les effets

Voir similaire

Code intégré

En contact avec

Camarades de classe

Télégramme

Commentaires

Ajoutez votre avis


Diapositive 1

Diapositive 2

Une chaîne est un tableau de caractères, c'est-à-dire éléments de type char. En Pascal, une chaîne a un type de données String. varName : chaîne [Longueur] ; Si la longueur n'est pas spécifiée, la mémoire est allouée pour une chaîne pouvant contenir jusqu'à 255 caractères. Théorie 1 var s1:string; chaîne 255 caractères var s2:string; chaîne de 20 caractères

Diapositive 3

Règles : les chaînes ne sont égales que si elles ont le même jeu de caractères et la même longueur ; Par exemple : "ABC"="ABC" et "ABC"≠"abc" sinon une comparaison élément par élément des caractères par leurs codes se produit : "0"

Diapositive 4

Théorie 3 Connecter deux cordes. s1:="2011" + "année" ; Écrire(s1); s1:="10"; s2:="classe"; s3:=s1+" "+s2; Écrire(s3);

Diapositive 5

Fonction Longueur La fonction Longueur(S) détermine la longueur actuelle de la chaîne S. Le résultat est une valeur entière. Théorie 4 PROGRAMME Longueur_1 ; VAR S : CHAÎNE ; n : ENTIER ; BEGIN Writeln('enterword "); Readln(S); n:= Longueur (S) ; Writeln('enterword ", n:5, " lettres.."); FIN. On écrit la longueur de la chaîne dans une variable de type entier PROGRAM Dlina_2 ; VAR S : CHAÎNE ; BEGIN Writeln('entrez un mot'); Lire(S); Writeln('le mot est constitué de ', Longueur (S),'lettres. '); FIN. Nous affichons la longueur de la chaîne à la suite de l'exécution de la fonction.Tâche 1. Créer un programme qui compte le nombre de lettres dans un mot.

Diapositive 6

Utilisecrt ; var a,b:chaîne; m,n : entier ; Commencez Clrscr ; Writeln("Entrez la première ligne");Readln(a); Writeln("Entrez la deuxième ligne "); Readln(b); m:=Longueur(a); n:=Longueur(b); if (m=n) then writeln("Les chaînes sont égales"); if (m>n) then writeln("Le premier est plus grand"); si (m

Diapositive 7

Fonction Soru La fonction Soru (S, P, N) extrait de la chaîne S une sous-chaîne de N caractères, à partir de la position P. Ici, N et P sont des expressions entières. Théorie 6 Dans la phrase MÈRE SOAPÉE RAMU, le mot RAMU commence par la 11ème lettre et se compose de 4 lettres COPIE(s1,11,4)

Diapositive 8

Tâche 3. Programme n3_1 ; Utilisecrt ; var a,b,c,d:string; Commencez Clrscr ; a:="informatique"; b:=""; c:=copie(a,8,1); d:=copie(a,4,2); b:=c+d+c; écrire(b); Fin. Tâche de composition de chaînes 7 Nous utilisons la fonction de travail avec des variables symboliques COPY Deuxième option : Programme n3_2 ; Utilisecrt ; var a,b:chaîne; Commencez Clrscr ; a:='informatique"; b:=a+a+a+a; writeln(b); End. Nous utilisons la définition d'une chaîne comme un tableau de caractères

Diapositive 9

Conversion de type 8 La fonction STR Str(x, S) convertit le nombre x au format chaîne. Où x est une expression numérique, S est une variable chaîne. Tâche 4. Écrivez un programme qui imprime le premier et le dernier chiffre d'un nombre naturel saisi au clavier. Introduction au programme ; utilise Crt; VAR S : CHAÎNE ; n : ENTIER ; BEGIN Write("Entrez un nombre ");readln(n); Str(n,S); Writeln("Premier chiffre -",S); Writeln("Le dernier chiffre est ",S); FIN. Convertir un nombre naturel en chaîne

Diapositive 10

La procédure val permet de convertir des caractères numériques (l'image d'un nombre) en nombre. En général, un appel à une procédure ressemble à ceci : VAL (String, Number, Code) ; où String est une constante ou une variable chaîne contenant l'image d'un nombre ; Nombre – une variable de type entier ou fractionnaire à laquelle une valeur doit être attribuée Code – code d'erreur renvoyé par la procédure (entier) Conversion de type 9 Procédure VAL

Diapositive 11

Conversion de type 10 BEGIN s1:="123456789"; val(s1,n,code); Écrire(n); FIN. COMMENCER s1:="123456789ABCDE"; val(s1,n,code); Écrire(n); FIN.

Diapositive 12

s1:="ABCDE123456789"; val(s1,n,code); Écrire(n); PascalABC dispose d'un arsenal de transformations plus avancé, comme DELPHI : S:=IntToStr(N) - convertit un entier en chaîne ; n:=StrToInt(S) - convertit une chaîne en entier S:=FloatToStr(r) - convertit un nombre réel en chaîne R:=StrToFloat(s) convertit une chaîne en nombre réel. Si la conversion n'est pas possible, une erreur d'exécution se produit. Type Conversion 11

Diapositive 13

Conversion de type 12 Problème 5.

Diapositive 14

Symboles et leurs codes 13 Fonctions ORD et CHR Fonction Ord(S) – détermine le numéro de série du symbole. Fonction Chr(i) – détermine le caractère avec le numéro de série i En utilisant le numéro 255, nous dérivons le caractère de la table de codes I

Diapositive 15

Symboles et leurs codes 14 Tâche 6. Créer un programme qui, sur la base d'un symbole saisi au clavier, affiche son numéro dans la table des codes. Introduction au programme ; utilise Crt; VAR S : char ; n, code : ENTIER ; BEGIN Write("Entrez le caractère ");readln(s); Writeln("Le symbole ", s," a le code -",ord(s)); FIN. La fonction ORD fonctionne uniquement avec le type de données caractère

Diapositive 16

Problème 7. Programme n5 ; UtiliseCrt ; Var s:chaîne; je,k:entier; commencerClrScr ; Écrire("DansLigne"); lecture(s) ; k:=0; pour i:=1 à length(s), faites if (s[i]="A") then k:=k+1; writeln("La lettre A apparaît = ", k:8," fois"); fin. Itérer de 1 à la dernière lettre Si A est à la ième place, augmenter K de 1 Compter les caractères à la ligne 15

Diapositive 17

Remarque 16 pour i:=1 to length(s) dobegin if (s[i]=…… if (s[i]=…… end; Remarque : si vous devez rechercher plusieurs caractères dans une ligne, alors nous joignons les conditions entre parenthèses de programme BEGIN ...END

Diapositive 18

Comptage des caractères dans la ligne 17 Début Entrée S i,1,length(s) Si = "A" K=K+1 Sortie K Fin Oui Non Organigramme pour la tâche de comptage des lettres A dans la ligne K=0

Diapositive 19

Remplacement des caractères à la ligne 18 Tâche 8.Programme n6 ; UtiliseCrt ; Var s:chaîne; je:entier; commencerClrScr ; Écrire("DansLigne"); lecture(s) ; pour i:=1 à length(s)do if (s[i]="A") then s[i]:="O"; écrit(s); fin. On passe de 1 à la dernière lettre. Si à la ième place il y a A, on le met i-ème placeÀ PROPOS DE.

Diapositive 20

Remplacement de caractères dans la ligne 19 Début Entrée S i,1,length(s) Si ="A" Si ="O" Sortie S Fin Oui Non Organigramme du problème du remplacement de la lettre A par O

Diapositive 21

Tâche 9 Supprimez toutes les lettres R (latin, majuscule) de la chaîne saisie au clavier. Programme n7 ; UtiliseCrt ; var a,b:Chaîne; je:entier; commencerClrScr ; 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. Itérer de 1 à la dernière lettre Préparer une variable supplémentaire S'il n'y a pas de R à la ième place, alors nous ajoutons cette lettre à ce qui se trouve dans B. Ce qui s'est passé dans B est replacé dans A. Suppression de caractères de la chaîne 20

Diapositive 22

Suppression de caractères de la chaîne 21 Début Entrée A i,1,length(A) Ai "R" B=B+ Ai Sortie A Fin Oui Non Organigramme pour le problème de la suppression des lettres R de la chaîne B="" A=B

Diapositive 23

Conditions imbriquées. 22 commencer clRscr ; Lecture(s) ; pour i:=1 à longueur(s), faites if (s[i]="a") ou (s[i]="b") then if (s[i]="a") then s[i] :="b" sinon s[i]:="a"; écrit(s); fin. Problème 10. Dans la chaîne entière, nous devons sélectionner uniquement A et B et ensuite seulement effectuer le remplacement

Diapositive 24

Conditions imbriquées 23 Début Entrée S i, 1, longueur(S) Si ="a" Si ="b" Si ="a" Sortie S Fin Si ="a" ou Si ="b" Oui Non Oui Non Schéma fonctionnel à le problème du remplacement de A par B et vice versa

Diapositive 25

Les boucles imbriquées 24 commencent ClrScr ; Écrire("DansLigne"); lecture(s) ; s1:=",.;:"!?-"; pour i:=1 à longueur(s1) commencez k:=0; pour j:=1 à longueur(s) faites si (s[j]=s1 [i]) then k:=k+1; if (k0) then writeln(s1[i]," - ",k:5," times"); end; end. Problème 11. Boucle externe énumérant les signes écrits en S1 Le corps de la boucle externe contient une boucle chargée d'énumérer les caractères de la chaîne saisie

Diapositive 26

Boucles imbriquées 25 Entrée de démarrage S i, 1, longueur (S1) s1=",.;:"!?-" K=0 j, 1, longueur (S) Sj = S1i Oui Non K=K+1 K0 Sortie S1i ,K Non Oui Fin Organigramme pour le problème du comptage des signes de ponctuation

Afficher toutes les diapositives

Abstrait

�PAGE � �PAGE �1�

Bloc 1.

Théorie.

Diapositive 1

Diapositive 2

Diapositive 3.

Diapositive 4

Diapositive 5. La solution au problème a été analysée :

Diapositive 6.

Diapositive 7.

Créez un programme qui découpe les lettres du mot COMPUTER SCIENCE afin qu'elles forment le mot CAKE.

Bloc 2.

Étant donné une chaîne de caractères a1+a2=. Où 1<=а1 и а2<=9. Составить программу, вычисляющую это выражение. Измените программу так, что бы вместо знака «+» можно было писать « - », « * », « / ».

Problèmes pour solution supplémentaire :

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

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

Bloc 3.

Bloc 4.

Étant donné une chaîne de caractères. Déterminez combien de fois la lettre A (russe) y apparaît.

Problèmes pour solution supplémentaire :

Étant donné une chaîne de caractères. Déterminez combien de fois la lettre A (russe) y apparaît.

Bloc 5.

Étant donné une chaîne de caractères. Remplacez toutes les lettres A qu'il contient par la lettre O.

Problèmes pour solution supplémentaire :

Bloc 6.

Problèmes pour solution supplémentaire :

Bloc 7.

Dans le texte donné, remplacez partout la lettre « a » par la lettre « b », et la lettre « b » par la lettre « a ».

Étant donné une chaîne de caractères contenant des signes de ponctuation. Comptez quoi et combien de signes de ponctuation contient une ligne.

Problèmes pour solution supplémentaire :

�PAGE � �PAGE �1�

Description de la présentation « Chaînes en Pascal »

Cette présentation peut être utilisée lors de l'étude du sujet « Chaînes dans le langage de programmation Pascal » lors de l'enseignement de la programmation en langage Pascal. Il aborde la définition et la description d'une variable de chaîne, les fonctions permettant de travailler avec des chaînes et examine également plusieurs tâches typiques lors de l'utilisation de chaînes. La présentation contient 24 diapositives, combinées en 7 blocs.

Brève navigation à travers les diapositives et les tâches supplémentaires que les étudiants doivent résoudre de manière indépendante :

Bloc 1.

Théorie.

Diapositive 1 . La définition d'une variable chaîne est donnée, ainsi que la méthode de description dans la section description de la variable.

Diapositive 2 . Les règles de comparaison de chaînes en langage Pascal sont présentées, ainsi que deux exemples illustrant ces règles.

Diapositive 3. Des exemples de combinaison de plusieurs lignes en une seule sont présentés.

Diapositive 4 . La définition de la fonction Longueur() est donnée. Et deux solutions au problème sont analysées :

Écrivez un programme pour compter le nombre de lettres dans un mot.

La première méthode, utilisant l'opération d'affectation, attribue le nombre de caractères d'une chaîne à une variable de type entier et l'affiche à l'écran. Dans la deuxième méthode, la fonction length() est insérée directement dans l'instruction Writeln.

Diapositive 5. La solution au problème a été analysée :

Comparez la longueur de deux chaînes saisies au clavier.

Dans celui-ci, vous devez déterminer la longueur de deux chaînes et utiliser l'opérateur de branche pour comparer les longueurs de ces chaînes.

Diapositive 6. La définition de la fonction Copy() est donnée. La capture d'écran montre un exemple du fonctionnement de cette fonction avec les commentaires nécessaires.

Diapositive 7. Deux façons de résoudre le problème sont présentées :

Créez un programme qui découpe les lettres du mot COMPUTER SCIENCE afin qu'elles forment le mot CAKE.

Dans le premier cas, le découpage se fait à l'aide de la fonction Copier, et dans le second, à l'aide de la représentation de la chaîne sous forme d'un tableau de caractères.

Problèmes pour solution supplémentaire :

Écrivez un programme qui demande le nom d'une personne et l'affiche à l'écran avec un message d'accueil.

Écrivez un programme qui demande le prénom et le nom d'une personne et les affiche sur une seule ligne avec le message d'accueil.

Deux lignes sont saisies à partir du clavier, déterminent laquelle est la plus longue et de combien, et affichent le message correspondant à l'écran.

Une chaîne de caractères est saisie à partir du clavier, affiche le caractère à la kième place. k – saisi à partir du clavier.

Un mot est saisi à partir du clavier, est-il exact qu'il commence et se termine par la même lettre ?

Deux mots sont donnés. Est-il vrai que le premier mot se termine par la même lettre que le second ?

Obtenez du mot « INTEGRAL » les mots « HALTÈRES », « X-RAY », « TIGRE », « AGENT ».

Créez un programme qui vérifie l'orthographe des préfixes raz- et ras- dans un mot saisi au clavier et, si nécessaire, corrige l'erreur.

Bloc 2.

Fonctions de conversion de type.

Diapositive 8. Une description de la procédure Srt() est donnée. La solution au problème est analysée :

Écrivez un programme qui imprime le premier et le dernier chiffre d'un nombre naturel saisi au clavier.

Dans celui-ci, un nombre naturel est converti en chaîne à l'aide de la procédure Str(), puis le premier et le dernier caractère sont affichés à l'écran. Ici, il est impératif de dire aux étudiants que cette méthode n'est pas adaptée à tous les cas, par exemple, dans les problèmes des Olympiades, la condition est souvent posée qu'un type de données caractère ne peut pas être utilisé et/ou qu'un nombre naturel contient plus de 255 chiffres, etc. .

Diapositive 9. La définition de la procédure Val() est donnée.

Diapositive 10. Montre des exemples de conversion de diverses chaînes contenant des nombres en nombre naturel.

Diapositive 11. Montre les fonctions de conversion des types numériques et caractères dans le système de programmation PascalABC. Cela peut être très utile si vous envisagez de passer à l’apprentissage de Lazarus ou Delphi à l’avenir.

Diapositive 12. La solution au problème est présentée :

Étant donné une chaîne de caractères a1+a2=. Où 1<=а1 и а2<=9. Составить программу, вычисляющую это выражение. Измените программу так, что бы вместо знака «+» можно было писать « - », « * », « / ».

Il considère le cas le plus simple, lorsque les actions sont effectuées avec deux nombres naturels à un chiffre. À l’avenir, selon le niveau des élèves, cette tâche pourra devenir de plus en plus difficile. Ajouter des nombres à plusieurs chiffres, des nombres négatifs, des exponentiations, des parenthèses et terminer par, par exemple, un calcul ou une conversion de la notation polonaise.

Problèmes pour solution supplémentaire :

Étant donné une chaîne représentant la notation décimale d’un entier positif. Imprime une chaîne représentant la représentation binaire du même nombre.

Étant donné une chaîne représentant un entier positif. Trouvez la somme des chiffres de ce nombre.

Étant donné un texte de la forme a1+a2 +a3+…+ai. Où ai sont des entiers (0<=аi<=9). Составить программу, вычисляющую эту сумму.

Étant donné un texte qui a la forme a1 - a2 + a3 - ... + ai. Où ai sont des entiers (0<=аi<=9). Составить программу, вычисляющую эту алгебраическую сумму.

Le nombre est donné dans le système numérique hexadécimal. Imprimez une ligne représentant la notation décimale du même nombre.

Étant donné une chaîne représentant la représentation binaire d'un entier positif. Imprimez une ligne représentant la notation décimale du même nombre.

Bloc 3.

Fonctions pour travailler avec des codes de caractères.

Diapositive 13. Les fonctions ORD et CHR sont définies. Une capture d'écran du programme illustrant le fonctionnement de la fonction Chr est affichée.

Diapositive 14. La solution au problème est présentée :

Écrivez un programme qui, sur la base d'un caractère saisi au clavier, affiche son numéro dans la table de codes.

Il est nécessaire de noter ici que la fonction Ord ne fonctionne qu'avec le type de données caractère (char). Parce que très souvent, les étudiants ne comprennent pas la différence entre les types de caractères et les types de chaînes.

Bloc 4.

Problèmes impliquant de compter quelque chose dans une ligne.

Diapositive 15. La solution au problème est présentée :

Étant donné une chaîne de caractères. Déterminez combien de fois la lettre A (russe) y apparaît.

Ce problème illustre une manière de rechercher des caractères dans une chaîne. A noter que pour rechercher une chaîne dans une chaîne, il est plus approprié d'utiliser la fonction Copier.

Diapositive 16. Contient un rappel que si vous devez rechercher plusieurs caractères dans une ligne, alors nous mettons les conditions entre parenthèses de programme COMMENCER ... FIN

Diapositive 17. L'organigramme de la tâche de la diapositive 15 est présenté.

Problèmes pour solution supplémentaire :

Étant donné une chaîne de caractères. Déterminez combien de fois la lettre A (russe) y apparaît.

Étant donné une chaîne représentant une expression algébrique, vérifiez l’appariement des parenthèses qu’elle contient. Affichez le résultat à l'écran.

Le texte est donné. Déterminez combien de lettres voisines identiques il contient.

Le texte est donné. Déterminez le nombre de mots dans une phrase.

Le texte est donné. Déterminez quelles lettres M ou N contiennent le plus.

Le texte est donné. Déterminez combien de mots dans ce texte commencent par la lettre A.

Étant donné une chaîne de caractères contenant deux points (:). Déterminez combien de caractères le précèdent.

Étant donné une chaîne de caractères. Déterminez combien de fois le groupe de lettres ABC y est inclus.

Le texte est donné. Il contient au moins deux lettres K. Déterminez les numéros de série de la première et de la dernière lettre K.

Le texte est donné. Déterminez laquelle des lettres C ou T apparaît en premier.

Le texte est donné. Déterminez le nombre de lettres N précédant la première virgule de la phrase.

Étant donné un texte contenant deux virgules. Comptez le nombre de caractères situés entre ces virgules.

Bloc 5.

Tâches permettant de modifier les caractères d'une chaîne sans modifier sa longueur.

Diapositive 18. La solution au problème est présentée :

Étant donné une chaîne de caractères. Remplacez toutes les lettres A qu'il contient par la lettre O.

Ce problème montre comment modifier une chaîne sans modifier sa longueur.

Diapositive 19. L'organigramme de la tâche de la diapositive 18 est présenté.

Problèmes pour solution supplémentaire :

Étant donné une chaîne de caractères. Remplacez toutes les lettres aux endroits pairs par la lettre O.

Étant donné une chaîne de caractères. Remplacez la combinaison de lettres « min » par « max » dans le texte donné.

Étant donné une chaîne de caractères. Remplacez tous les espaces par le signe « _ ».

Recherchez la première et la dernière lettre K dans le texte saisi au clavier. Et remplacez-les par "*".

Créez un programme qui corrige l'orthographe de « ZHI » et « SHI » dans un mot saisi au clavier.

Bloc 6.

Tâches liées à la modification de la longueur d'une ligne.

Diapositive 20. La solution au problème est présentée :

Supprimez toutes les lettres R (latin, majuscule) de la chaîne saisie au clavier.

Cette tâche montre comment une chaîne change à mesure que sa longueur change.

Diapositive 21. L'organigramme de la tâche de la diapositive 20 est présenté.

Problèmes pour solution supplémentaire :

Supprimez toutes les lettres A (latin, majuscule) de la chaîne saisie au clavier.

La parole est donnée. Vérifiez s'il s'agit d'un levier de vitesses. Autrement dit, il se lit de la même manière depuis la fin et le début. (Par exemple : ANNA, SHALASH.)

Dans un mot donné, remplacez chaque lettre « b » par la combinaison de lettres « ku ».

Écrivez un programme qui supprime toutes les lettres d'un texte donné. (Entrez le texte et la lettre du clavier).

Pour concevoir des titres et des mots logiquement importants, les caractères du texte sont alternés avec des espaces. Écrivez un programme qui effectue une telle opération.

De ce texte, supprimez toutes les lettres « C » qui précèdent la lettre « T ».

Après chaque lettre P, insérez trois points d'exclamation « !!! ».

Bloc 7.

Problèmes avec les branches et les boucles imbriquées.

Diapositive 22. La solution au problème est présentée :

Dans le texte donné, remplacez partout la lettre « a » par la lettre « b », et la lettre « b » par la lettre « a ».

Une solution directe et frontale à ce problème ne produit pas de résultats. Ici, vous devez sélectionner uniquement les lettres nécessaires afin que le reste ne change pas. Et puis, en fonction de la lettre trouvée, effectuez un remplacement en utilisant la condition complète.

Diapositive 23. L'organigramme de la tâche de la diapositive 22 est affiché.

Diapositive 24. La solution au problème est présentée :

Étant donné une chaîne de caractères contenant des signes de ponctuation. Comptez quoi et combien de signes de ponctuation contient une ligne.

Ce problème montre un exemple d'utilisation de boucles imbriquées pour comparer deux chaînes. Il est possible de résoudre ce problème en utilisant un grand nombre de conditions, mais une telle solution, à mon avis, ne sera pas rationnelle.

Problèmes pour solution supplémentaire :

Étant donné une chaîne de caractères (russe). Déterminez le nombre de voyelles dans cette ligne.

Étant donné une chaîne de caractères (anglais). Déterminez quelles et combien de voyelles la ligne contient.

Étant donné une chaîne de caractères. Déterminez quels caractères ont plus de voyelles ou de consonnes.

Étant donné deux chaînes A et B. Déterminez s'il est possible de former une chaîne B à partir des lettres de la chaîne A. De plus, chaque lettre peut être utilisée une fois. Les lettres peuvent être réorganisées. (Par exemple : vous pouvez obtenir un AGENT d'INTEGRAL, mais pas un GRAPH).

Le texte est donné. Déterminez lequel contient le plus de chiffres ou de lettres.

Deux lignes sont données. Comptez et affichez le nombre de lettres communes. (Lettres apparaissant dans les première et deuxième lignes).

À partir du texte donné, sélectionnez et affichez les caractères qui y apparaissent exactement une fois.

Pour avertir de l'échec de l'opération, Eustace a proposé la méthode de notification suivante. Il envoie un télégramme dont le texte contient les caractères « b », « e », « d », « a », nécessairement dans cet ordre, mais pas nécessairement à la suite. Créez un programme qui vous permet de déterminer si le texte envoyé est une notification d'échec ou non.

Pour consolider le sujet, vous devez résoudre autant de problèmes que possible. Leur nombre dépend directement du nombre d'heures allouées à l'étude d'un sujet donné et du cours de programmation dans son ensemble.

À mon avis, les livres sur les problèmes de programmation les plus réussis sont :

Collection de problèmes de programmation. 2e édition. Auteur D.M. Zlatopolski. Publié à Saint-Pétersbourg "BHV-Petersburg" en 2007.

Version électronique du cahier de tâches de programmation version 4.6. Auteur M.E. Abramyan. Distribué avec le système de programmation Pascal ABC.

Ils présentent des problèmes sur tous les sujets du cours de programmation.

Sur la base de ces livres de problèmes et de quelques autres sources, j'ai créé mon propre mini livre de problèmes divisant les problèmes en trois groupes de difficulté A, B et C.

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

Télécharger le résumé

Pour utiliser les aperçus de présentation, créez un compte Google et connectez-vous : https://accounts.google.com


Légendes des diapositives :

Types de données texte et caractères Pascal La présentation a été préparée par le professeur d'informatique Tatyana Petrovna Kareva MBOU Gymnase n° 6 de Mezhdurechensk, région de Kemerovo

Les machines informatiques traitent bien plus que de simples chiffres. Ils passent presque plus de temps à traiter du texte. Pascal a un type de données spécial pour cela, appelé CHAR (du mot caractère). Tapez CHAR (caractère ou chaîne ou littéral). Ses significations sont des caractères individuels : lettres, chiffres, signes. Les constantes de caractères sont placées entre guillemets, par exemple 'A', 'B', 'C', '4', '7', ' '(espace). Les variables de caractère sont décrites par la clause Var variable name: char ;

Les valeurs de caractères peuvent être saisies et sorties, attribuées et comparées. Vous trouverez ci-dessous un exemple où toutes ces étapes sont effectuées. Var x, y : char ; Commencer l'écriture('Entrer le caractère'); readln(x); Y : = 'A' ; Si x

Il est possible de comparer des symboles car ils sont stockés dans la mémoire de l'ordinateur sous forme d'entiers (codes de caractères). Parmi deux symboles, celui dont le code est le plus grand est considéré comme le plus grand. Les caractères sont ordonnés comme suit : ' A '=,.

Fonctions symboliques standards. Pascal a des fonctions symboliques standards : CHR (N) – renvoie le symbole de code N au programme, ORD (S) – renvoie le code du symbole S, PRED (S) – renvoie le symbole précédent SUCC (S) – renvoie le symbole suivant EXEMPLES : CHR ( 128) = B ORD (':') = 58 PRED(' B ') = A SUCC(' G ') = D

Chaque caractère possède son propre code binaire unique. Les codes de tous les symboles sont résumés dans un tableau. La première moitié du tableau est devenue une norme internationale appelée ASCII - American Standard Code Information Interchange (lu comme « demander le code »), elle contient entre autres l'alphabet latin, la seconde a différentes options pour différentes langues. L'alphabet cyrillique (alphabet russe) possède plusieurs standards. Pascal utilise la norme KOI-8.

EXEMPLE d'utilisation d'une variable de type caractère. Créez un programme dans lequel l'ordinateur calcule à plusieurs reprises la somme A + B pour différentes valeurs de A et B. À la fin de chaque étape, une demande apparaît pour continuer ou arrêter les calculs : « Terminer le programme ? (O/N ).” Var A, B : réel ; C : char ; Commencez à répéter Write('Entrez deux nombres'); Lire(a,b); Écrire(a + b:0:2); Writeln('Fin du programme ?(O/N)'); Lire(c); Jusqu'à c='D'; (le programme se terminera si D est entré) Readln End.

Tâches de formation. 1 . Que retournera la fonction CHR(ORD(X)) ? 2. Déterminez les valeurs des fonctions suivantes : CHR(68) ORD('d') PRED(1) SUCC(' I ') 3. Créez un programme dans lequel l'ordinateur trouve le produit de nombres impairs, en commençant par un, et jusqu'à la question posée après chaque étape de calcul : « Continuer les calculs ? (O/N) », répondez « O ».

Pour gérer des unités de texte plus grandes - les chaînes - un type de données appelé STRING a été introduit. Les valeurs de ce type sont des chaînes de caractères d'une longueur maximale de 255. Les variables de chaîne doivent être décrites par la clause : Nom VAR : STRING Les chaînes peuvent être attribuées, comparées, entrées, sorties et concaténées. La connexion est indiquée par un signe "+". Voici des exemples de quelques opérations de comparaison sur des chaînes : "table"

Parmi toutes les valeurs de chaîne possibles, il existe une chaîne vide. Il est représenté par deux apostrophes (guillemets simples) sans rien entre elles. Pour saisir ce caractère dans une chaîne, vous devez le répéter deux fois. Par exemple, l'opérateur d'écriture ("à propos du phénomène") affichera : "déclaration". Le programmeur a accès aux caractères individuels d'une variable chaîne ; pour cela, en plus du nom de la variable, il faut indiquer le numéro de série numéro du caractère dans la ligne. Par exemple, si la variable X:STRING est décrite, alors X est le premier caractère de la chaîne, X est le deuxième, etc. X a un rôle spécial - stocker la longueur de la chaîne . La valeur de X est le caractère dont le code est égal au nombre de caractères dans la chaîne. Mais pour déterminer la longueur d'une variable chaîne, la fonction LENGTH(string variable) est généralement utilisée. Par exemple, si N:=LENGTH( x); - N se verra attribuer une valeur égale au nombre de caractères de la ligne.

Lors de la description d'une variable chaîne, nous pouvons limiter la longueur de la chaîne en spécifiant sa taille maximale possible, alors seul le nombre spécifié de caractères sera stocké dans la chaîne. Var a,b:string ; start write("entrez un mot"); readln(a); écrire un); lire en fin de compte. Si vous entrez le mot MAÏS lors de l'exécution de ce programme, le programme imprimera COOK.

SOUVIENS-TOI. Si, lors de l'exécution du programme, vous devez saisir une valeur pour plusieurs variables chaîne, chacune d'entre elles doit avoir sa propre instruction d'entrée READLN. Par exemple, Var a,b,c:string ; commencer readln(a); readln(b); readln(c); écrire(a+b+c); lire en fin de compte. Vérifiez ce qui se passe si vous écrivez READLN(a,b,c); ou LIRE(a,b,c).

Exemple 1. Créez un programme qui détermine lequel des deux noms de famille est le plus long. Les noms de famille ont des longueurs différentes. Var a,b:string ; commencer readln(a); readln(b); si longueur(a)>longueur(b) alors write(a) else write(b); lire en fin de compte.

Exemple 2. Deux mots sont donnés. Écrivez un programme pour déterminer s'il est vrai que le premier mot commence par la même lettre que celle où se termine le deuxième mot. Var x,y:octet ; a,b:chaîne ; commencer readln(a); readln(b); x:=longueur(b); (on détermine la longueur du mot b pour connaître le numéro du dernier caractère) si a=b[x] alors écrivez ("vrai") sinon écrivez ("incorrect"); fin de lecture.

Tâches de formation. 1. Le nom de la ville est indiqué. Déterminez si le nombre de caractères qu'il contient est pair ou impair. 2. La parole est donnée. Afficher deux fois son troisième caractère et son dernier caractère. 3. La parole est donnée. Est-il vrai qu'il commence et se termine par la même lettre ? 4. La parole est donnée. Recevez et affichez une combinaison de lettres composée de son troisième et dernier caractère. 5. Créez un programme qui demande le nom d'une équipe de football et le répète à l'écran avec les mots : « C'est le champion !

Pour travailler avec des variables chaîne en Pascal, il existe un ensemble de procédures et de fonctions standard. Leur utilisation simplifie la résolution de problèmes. Je tiens à vous rappeler que le résultat de l'exécution d'une fonction doit être stocké dans une variable du type approprié, à moins bien sûr que la fonction soit un élément de l'expression. Fonction pour copier une chaîne ou une partie de celle-ci. S:=COPIE(chaîne, position, N); La fonction de copie est également appelée « découpe ». Le résultat de l'exécution de la fonction sera une partie de la chaîne commençant à la position spécifiée de longueur N.

Exemple : Une proposition est donnée. Déterminez le numéro de série de la première lettre « k » rencontrée. S'il n'y a pas de lettre de ce type, veuillez le signaler. Var x : entier ; un string; start write("Entrez une phrase"); readln(a); x:=pos(" à ",a); si x=0 alors writeln ("Il n'y a pas de lettre de ce type") else writeln (x); lire en fin de compte.

Procédure de suppression d'une partie d'une chaîne DELETE(ligne, numéro de départ, nombre de caractères) Supprime le nombre de caractères spécifié de la chaîne source. Exemple : Étant donné un mot composé d'un nombre pair de lettres. Affichez sa première moitié. Var i,x:octet ; a,p:chaîne ; commencer à répéter l'écriture ("Entrez un mot avec un nombre pair de lettres"); readln(a); x:=longueur(a); (on détermine la longueur du mot) jusqu'à (x mod 2 = 0) ; x := x div 2 ; (utiliser une division entière) supprimer (a,x+1,x); écrire un); fin de lecture.

Procédure d'insertion d'une sous-chaîne dans une chaîne INSERT(line1, line2, position); Line1 est inséré dans line2 en commençant à la position spécifiée. Tâches de formation. 1. Une proposition est donnée. Déterminez le nombre d’occurrences d’un certain symbole. 2. Une proposition est faite. Remplacez toutes les occurrences de la combinaison de lettres « ah » par « euh ». 3. La parole est donnée. Vérifiez s'il s'agit d'un « renversement », c'est-à-dire se lit de la même manière du début à la fin. 4. Le mot est donné : a. supprimez-en la première lettre « o », s'il existe une telle lettre ; b. supprimez-en la dernière lettre "t", s'il existe une telle lettre. 5. Une proposition est faite. Supprimez toutes les lettres "s".


Diapositive 1

Diapositive 2

Une chaîne est un tableau de caractères, c'est-à-dire éléments de type char. En Pascal, une chaîne a un type de données String. var Nom : chaîne [Longueur] ; Si la longueur n'est pas spécifiée, la mémoire est allouée pour une chaîne pouvant contenir jusqu'à 255 caractères. Théorie 1 var s1:string; chaîne 255 caractères var s2:string; chaîne de 20 caractères

Diapositive 3

Règles : les chaînes ne sont égales que si elles ont le même jeu de caractères et la même longueur ; Par exemple : "ABC"="ABC" et "ABC"≠"abc" sinon il y a une comparaison élément par élément des caractères par leurs codes : "0"

Diapositive 4

Théorie 3 Connecter deux cordes. s1:="2011" + "année" ; Écrire(s1); s1:="10"; s2:="classe"; s3:=s1+" "+s2; Écrire(s3);

Diapositive 5

Fonction Longueur La fonction Longueur(S) détermine la longueur actuelle de la chaîne S. Le résultat est une valeur entière. Théorie 4 PROGRAMME Longueur_1 ; VAR S : CHAÎNE ; n : ENTIER ; BEGIN Writeln('entrez le mot "); Readln(S); n:= Longueur (S) ; Writeln('entrez le mot ", n:5, " lit.."); FIN. On écrit la longueur de la chaîne dans une variable de type entier PROGRAM Dlina_2 ; VAR S : CHAÎNE ; BEGIN Writeln('entrez un mot') ; Lire(S); Writeln('le mot est constitué de', longueur (S),'lettres.'); FIN. Nous affichons la longueur de la chaîne à la suite de l'exécution de la fonction.Tâche 1. Créer un programme qui compte le nombre de lettres dans un mot.

Diapositive 6

Utilisecrt ; var a,b:chaîne; m,n : entier ; Commencez Clrscr ; Writeln("Entrez la première ligne");Readln(a); Writeln("Entrez la deuxième ligne "); Readln(b); m:=Longueur(a); n:=Longueur(b); if (m=n) then writeln("Les lignes sont égales"); if (m>n) then writeln("Le premier est plus grand"); si (m

Diapositive 7

Fonction Soru La fonction Soru (S, P, N) extrait de la chaîne S une sous-chaîne de N caractères, à partir de la position P. Ici, N et P sont des expressions entières. Théorie 6 Dans la phrase MÈRE SOAPÉE RAMU, le mot RAMU commence par la 11ème lettre et se compose de 4 lettres COPIE(s1,11,4)

Diapositive 8

Tâche 3. Créer un programme qui coupe les lettres du mot COMPUTER SCIENCE afin qu'elles forment le mot CAKE. Programme n3_1 ; Utilisecrt ; var a,b,c,d:string; Commencez Clrscr ; a:="informatique"; b:=""; c:=copie(a,8,1); d:=copie(a,4,2); b:=c+d+c; écrire(b); Fin. Tâche de composition de chaînes 7 Nous utilisons la fonction de travail avec des variables symboliques COPY Deuxième option : Programme n3_2 ; Utilisecrt ; var a,b:chaîne; Commencez Clrscr ; a:='informatique"; b:=a+a+a+a; writeln(b); End. Nous utilisons la définition d'une chaîne comme un tableau de caractères

Diapositive 9

Conversion de type 8 La fonction STR Str(x, S) convertit le nombre x au format chaîne. Où x est une expression numérique, S est une variable chaîne. Tâche 4. Écrivez un programme qui imprime le premier et le dernier chiffre d'un nombre naturel saisi au clavier. Introduction au programme ; utilise Crt; VAR S : CHAÎNE ; n : ENTIER ; BEGIN Write("Entrez un nombre ");readln(n); Str(n,S); Writeln("Premier chiffre -",S); Writeln("Le dernier chiffre est ",S); FIN. Convertir un nombre naturel en chaîne

Diapositive 10

La procédure val permet de convertir des caractères numériques (l'image d'un nombre) en nombre. En général, un appel à une procédure ressemble à ceci : VAL (String, Number, Code) ; où String est une constante ou une variable chaîne contenant l'image d'un nombre ; Nombre – une variable de type entier ou fractionnaire à laquelle une valeur doit être attribuée Code – code d'erreur renvoyé par la procédure (entier) Conversion de type 9 Procédure VAL

Diapositive 11

Conversion de type 10 BEGIN s1:="123456789"; val(s1,n,code); Écrire(n); FIN. COMMENCER s1:="123456789ABCDE"; val(s1,n,code); Écrire(n); FIN.

Diapositive 12

s1:="ABCDE123456789"; val(s1,n,code); Écrire(n); PascalABC dispose d'un arsenal de transformations plus développé comme DELPHI : S:=IntToStr(N) - convertit un entier en chaîne ; n:=StrToInt(S) - convertit une chaîne en entier S:=FloatToStr(r) - convertit un nombre réel en chaîne R:=StrToFloat(s) convertit une chaîne en nombre réel. Si la conversion n'est pas possible, une erreur d'exécution se produit. Type Conversion 11

Diapositive 13

Diapositive 14

Symboles et leurs codes 13 Fonctions ORD et CHR Fonction Ord(S) – détermine le numéro de série du symbole. Fonction Chr(i) – détermine le caractère avec le numéro de série i En utilisant le numéro 255, nous dérivons le caractère de la table de codes I

Diapositive 15

Symboles et leurs codes 14 Tâche 6. Créer un programme qui, sur la base d'un symbole saisi au clavier, affiche son numéro dans la table des codes. Introduction au programme ; utilise Crt; VAR S : char ; n, code : ENTIER ; BEGIN Write("Entrez le caractère ");readln(s); Writeln("Le symbole ", s," a le code -",ord(s)); FIN. La fonction ORD fonctionne uniquement avec le type de données caractère

Diapositive 16

Problème 7. Étant donné une chaîne de caractères. Déterminez combien de fois la lettre A (russe) y apparaît. Programme n5 ; UtiliseCrt ; Var s:chaîne; je,k:entier; commencerClrScr ; Write("Entrez une chaîne"); lecture(s) ; k:=0; pour i:=1 à length(s), faites if (s[i]="A") then k:=k+1; writeln("La lettre A apparaît = ", k:8," fois"); fin. Itérer de 1 à la dernière lettre Si A est à la ième place, augmenter K de 1 Compter les caractères à la ligne 15

Diapositive 17

Remarque 16 pour i:=1 to length(s) do start if (s[i]=…… if (s[i]=…… end; Remarque : si vous devez rechercher plusieurs caractères dans une ligne, alors nous placez les conditions entre parenthèses de programme BEGIN...END

Diapositive 18

Comptage des caractères dans la ligne 17 Début Entrée S i,1,length(s) Si = "A" K=K+1 Sortie K Fin Oui Non Organigramme pour la tâche de comptage des lettres A dans la ligne K=0

Diapositive 19

Remplacement de caractères à la ligne 18 Problème 8. Étant donné une chaîne de caractères. Remplacez toutes les lettres A qu'il contient par la lettre O. Programme n6 ; UtiliseCrt ; Var s:chaîne; je:entier; commencerClrScr ; Write("Entrez une chaîne"); lecture(s) ; pour i:=1 à length(s), faites if (s[i]="A") then s[i]:="O"; écrit(s); fin. On passe de 1 à la dernière lettre. Si A est à la ième place, mettez O à la ième place.

Diapositive 20

Remplacement de caractères dans la ligne 19 Début Entrée S i,1,length(s) Si ="A" Si ="O" Sortie S Fin Oui Non Organigramme du problème du remplacement de la lettre A par O

Diapositive 21

Tâche 9 Supprimez toutes les lettres R (latin, majuscule) de la chaîne saisie au clavier. Programme n7 ; UtiliseCrt ; var a,b:Chaîne; je:entier; commencerClrScr ; Write("Entrez la chaîne = "); readln(a); b:=""; pour i:=1 à length(a) do if (a[i]'R") then b:=b+a[i]; a:=b; writeln(a); end. Itérer de 1 au dernier lettre Nous préparons une variable supplémentaire. S'il n'y a pas de R à la ième place, alors nous ajoutons cette lettre à ce qui est dans B. Nous déplaçons ce qui s'est passé dans B vers A. Suppression de caractères de la ligne 20

Publications sur le sujet