Foi escrito: Cad1 = 1234 Cad2 = abcde Copiar, salvar e executar Cuidado para não digitar mais que 9 caracteres para Cad1">

A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013

Apresentações semelhantes


Apresentação em tema: "CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013"— Transcrição da apresentação:

1 CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
Capítulo VIII Cadeias de Caracteres

2 Programa 8.1: Leitura e escrita de cadeias de caracteres
#include <stdio.h> #include <conio.h> void main () { char Cad1[10], Cad2[] = "abcde"; int i; printf ("Digite uma cadeia de caracteres:\n\n"); scanf ("%s", Cad1); printf ("\nCad1 = %s", Cad1); printf ("\nCad2 = %s", Cad2); printf ("\n"); for (i = 0; i <= 9; i++) printf ("\n\tCad1[%d] = '%c' ou %d", i, Cad1[i], Cad1[i]); for (i = 0; i <= 5; i++) printf ("\n\tCad2[%d] = '%c' ou %d", i, Cad2[i], Cad2[i]); printf ("\n\nDigite algo para encerrar: "); getch (); } ? 1 2 3 4 5 Cad1 6 7 8 9 ‘1’ ‘2’ 1 ‘3’ 2 ‘4’ 3 ‘\0’ 4 ? 5 Cad1 6 7 8 9 ‘a’ ‘b’ 1 ‘c’ 2 ‘d’ 3 ‘e’ 4 5 Cad2 ‘\0’ Supor a digitação de 1234<enter> Foi escrito: Cad1 = 1234 Cad2 = abcde Copiar, salvar e executar Cuidado para não digitar mais que 9 caracteres para Cad1

3 Programa 8.2: O formato %s para leitura de cadeias de caracteres
#include <stdio.h> #include <conio.h> typedef char cadeia[20]; void main () { cadeia Cad1, Cad2; printf ("Digite uma frase:\n\n"); scanf ("%s%s", Cad1, Cad2); printf ("\nCad1 = %s", Cad1); printf ("\nCad2 = %s", Cad2); printf ("\n\nDigite algo para encerrar: "); getch (); } Copiar, salvar e executar Digite uma frase: gosto muito de CES-10 Cad1 = gosto Cad2 = muito Digite algo para encerrar Resultado de uma execução Com o formato %s, scanf encerra a leitura para uma variável, quando encontra um espaço em branco, ou um ‘enter’, ou tabulação

4 Programa 8.3: Comprimento de cadeias de caracteres
#include <stdio.h> #include <string.h> #include <conio.h> typedef char cadeia[50]; void main () { cadeia Cad; printf ("Digite uma cadeia de caracteres:\n\n"); scanf ("%s", Cad); printf ("\n\tComprimento (%s) = %d", Cad, strlen(Cad)); printf ("\n\nDigite algo para encerrar: "); getch (); } Copiar, salvar e executar ‘strlen’ retorna o no de caracteres de uma cadeia, sem contar o ‘\0’ Resultado de uma execução Digite uma cadeia de caracteres: anticonstitucionalissimamente Comprimento (anticonstitucionalissimamente) = 29 Digite algo para encerrar

5 Programa 8.4: Vetor de cadeias de caracteres
#include <stdio.h> #include <string.h> #include <conio.h> typedef char cadeia[21]; void main () { cadeia VetCadeia[30]; int i, n, Comprimento[30]; printf ("Armazenamento de cadeia de caracteres:\n\n"); printf ("Armazenar quantas cadeias (maximo 30 cadeias)? "); scanf ("%d", &n); for (i = 0; i <= n-1; i++) { printf ("\nDigite uma cadeia (maximo 20 caracteres): "); scanf ("%s", VetCadeia[i]); Comprimento[i] = strlen (VetCadeia[i]); } printf ("\n\n%30s|%15s", "Cadeia", "Comprimento"); printf ("\n "); for (i = 0; i <= n-1; i++) printf ("\n%30s|%15d", VetCadeia[i], Comprimento[i]); printf ("\n\nDigite algo para encerrar: "); getch (); Cadeias poderão ter no máximo 20 caracteres Copiar, salvar e executar Vetor com o comprimento das cadeias do vetor VetCadeia Vetor de no máximo 30 cadeias de caracteres

6 Programa 8.5: a função gets
#include <stdio.h> #include <conio.h> void main ( ) { int i, n; char Frase[200]; printf ("Numero de frases: "); scanf ("%d", &n); printf ("\n"); for (i = 1; i <= n; i++) { printf ("\n\nDigite a %da frase: ", i); fflush (stdin); gets (Frase); printf ("\n\tFrase digitada: %s", Frase); } printf ("\n\nDigite algo para encerrar: "); getch (); Copiar, salvar e executar A frase digitada poderá ter caracteres brancos e tabulações A função ‘fflush’ esvazia o buffer do teclado antes da chamada de ‘gets’

7 Programa 8.6: Conjuntos máximos de um arquivo
Sejam as seguintes definições: Conjunto: sequência de caracteres imprimíveis não brancos, dentro de um arquivo-texto Subconjunto de um dado conjunto: conjunto contido nesse dado conjunto Subconjunto próprio de um dado conjunto: subconjunto desse conjunto dado diferente do mesmo Conjunto máximo: conjunto que não é subconjunto próprio de nenhum outro conjunto

8 Copiar, salvar e executar
#include <stdio.h> #include <conio.h> typedef char cadeia1[31], cadeia2[11]; void main ( ) { int x, n; cadeia1 ConjMax; cadeia2 FileName; FILE *arq; printf ("Conjuntos maximos de um arquivo: "); printf ("\n\nDigite o nome do arquivo: "); scanf ("%s", FileName); arq = fopen (FileName, "r"); n = 0; x = fscanf (arq, "%s", ConjMax); while (x > 0) { printf ("\n%s", ConjMax); n++; x = fscanf (arq, "%s", ConjMax); } printf ("\n\nTotal: %d conjuntos maximos", n); printf ("\n\nDigite algo para encerrar: "); getch (); Criar um arquivo de nome arquivo01 com o seguinte conteúdo: &() b5FD ff123e ABGkJX Copiar, salvar e executar

9 cadeia1 VetCadeia[40]; int Comprimento[40];
Exercício 8.1: Vetor de conjuntos máximos Alterar o Programa 8.6 para que ele coloque todos os conjuntos máximos num vetor de cadeias de caracteres e os comprimentos desses conjuntos num vetor de inteiros Usar as seguintes declarações: cadeia1 VetCadeia[40]; int Comprimento[40]; Sendo a e b duas cadeias de caracteres, para copiar o conteúdo da cadeia b na cadeia a, usar: strcpy (a, b); ao invés de a = b; A função strcpy está no arquivo string.h No final, escrever o conteúdo do vetor VetCadeia, com cada cadeia ao lado de seu comprimento strcpy (VetCadeia[i], ConjMax);

10 Exemplo de saída, usando como entrada o arquivo01:
Conjuntos maximos de um arquivo: Digite o nome do arquivo: arquivo01 Total: 14 conjuntos maximos 17439&() 1b5FD ff123e ABGkJX Digite algo para encerrar: arquivo01 &() b5FD ff123e ABGkJX Saída no vídeo

11 Exercício 8.2: Alterar o programa do Exercício 8.1 para:
Montar um vetor de nome VetBin, com os conjuntos máximos de VetCadeia que contenham apenas 0’s e 1’s Considerando tais conjuntos máximos como sendo números binários em complemento de 2, montar um vetor de nome Compl2 contendo o valor em decimal correspondente a cada um desses conjuntos máximos No final, o programa deve escrever cada número binário em complemento de 2 ao lado do valor correspondente em decimal Obs.: sendo A[i] = “abcde”, então A[i][0] = ‘a’; A[i][1] = ‘b’; A[i][2] = ‘c’; etc 0 = Compl-2 (0) e 1 = Compl-2 (-1)

12 Exemplo de saída, usando como entrada o arquivo01:
Conjuntos maximos de um arquivo: Digite o nome do arquivo: arquivo01 Total: 14 conjuntos maximos 17439&() 1b5FD ff123e ABGkJX 6 numeros binarios 0 = compl-2 (0) = compl-2 (-13027) = compl-2 (105) 1 = compl-2 (-1) 00 = compl-2 (0) 10 = compl-2 (-2) Digite algo para encerrar:

13 Exercício 8.3: Alterar o programa do Exercício 8.2 para:
Montar um vetor de nome VetDec com os conjuntos máximos de VetCadeia que contenham apenas dígitos decimais e não correspondam a números binários Montar um vetor de números reais de nome Log10 tal que, se VetDec[i] tiver 9 ou menos dígitos, Log10[i] é o logaritmo na base 10 do número correspondente; senão, Log10[i] = -1 No final, o programa deve escrever cada elemento do vetor VetDec ao lado do elemento correspondente no vetor Log10

14 Exemplo de saída, usando como entrada o arquivo01:
6 numeros binarios 0 = compl-2 (0) = compl-2 (-13027) = compl-2 (105) 1 = compl-2 (-1) 00 = compl-2 (0) 10 = compl-2 (-2) 4 numeros decimais 198 Log10 ( ) = ***** Valor muito grande ***** Log10 ( ) = Log10 ( ) = Digite algo para encerrar:

15 Exercício 8.4: Alterar o programa do Exercício 8.3 para:
Montar um vetor de nome VetHexa com os conjuntos máximos de VetCadeia que contenham apenas dígitos hexadecimais e não correspondam a números binários Montar um vetor de números inteiros de nome ValBase10 tal que, se VetHexa[i] tiver 7 ou menos dígitos, ValBase10[i] é o valor na base 10 do número correspondente; senão, ValBase10[i] = -1 No final, o programa deve escrever cada elemento do vetor VetHexa ao lado do elemento correspondente no vetor ValBase10

16 Exemplo de saída, usando como entrada o arquivo01:
6 numeros binarios 0 = compl-2 (0) = compl-2 (-13027) = compl-2 (105) 1 = compl-2 (-1) 00 = compl-2 (0) 10 = compl-2 (-2) 4 numeros decimais 198 Log10 ( ) = ***** Valor muito grande ***** Log10 ( ) = Log10 ( ) = 6 numeros hexadecimais 198 = (408)10 ***** Valor muito grande ***** 1b5FD4 = ( )10 ***** Valor muito grande ***** ff123e = ( )10 98271 = (623217)10 Digite algo para encerrar:


Carregar ppt "CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013"

Apresentações semelhantes


Anúncios Google