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

Slides:



Advertisements
Apresentações semelhantes
Um programa em C Bibliotecas Variáveis globais
Advertisements

Linguagem de Programação IV
Linguagem C Marco Antonio – Julho/2009. Instalação A IDE que será utilizada é o Eclipse, com plugin para C/C++. Descompacte no diretório.
Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas.
Funções em C.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Capítulo 1 – Conceitos Básicos 1 Segunda-feira, 22 de Outubro de 2007 UNIBRATEC – Ensino Superior e Técnico em Informática Aula 15 – Tipos de Dados Avançados.
Programação para Engenharia I
Algoritmos e Programação Linguagens de Programação Teoria Aula 7 (19/05) Universidade Federal do Vale do São.
Introdução à Computação - Jorge Macêdo
Aula 1 Tipo Abstrato de Dados
LINGUAGEM ESTRUTURADA TURBO C
Universidade Federal do Espírito Santo Programação II Vetores Professora: Norminda Luiza.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo II Confecção de Tabelas.
Linguagem C Funções.
Vetores, Matrizes e Funções
Slides: Prof. João Fabro UTFPR - Curitiba
Estruturas de Dados Homogêneas Multidimensionais – Matrizes
Matrizes e Funções - Continuação
Slides: Prof. SIMÃO Revisão: Prof. João Fabro
Slides: Prof. João Fabro UTFPR - Curitiba
Fundamentos de Programação 1
Estruturas de Decisão Permitir testes para decidir acções alternativas: if if - else switch (?:) Operador Condicional MF.
Funções.
Linguagem de Programação
O Portal do Estudante de Computação
Vetor de Ponteiros Exemplo de Alocação. Escrever Vetor de Vetores de floats int main() { int i, k, n; float **vetor; // vetor de vetores int *tamanho;
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
PROGRAMAÇÃO ESTRUTURADA II
PROGRAMAÇÃO ESTRUTURADA II
Construção de Algoritmos AULA 03
© 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C (continuação)
PROGRAMAÇÃO I UNIDADE 4.
Programação II Estruturas de Dados Aula 02 - continuação
UNIDADE 5 ESTRUTURAS DE DADOS HOMOGÊNEAS
Computação Eletrônica
Introdução à linguagem C
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014
Linguagem de Programação
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014
APRENDER A APRENDER deve ser nossa meta. Comandos de Controle de Programa Comandos de Seleção Prof. Me. Jeime Nunes.
Prof.: Edson Holanda Teoria da computação
Uso de parâmetros na linha de comando. Parâmetros da função main:
Declarando e Chamando Funções
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo VI Desenhos e Animação.
 São utilizadas para dividir um código maior (mais complexo) em partes menores (mais simples).  Quando uma mesma tarefa é realizada várias vezes em um.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo VII Variáveis Indexadas Numéricas.
Estruturas de Dados Aula 6: Cadeias de Caracteres
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo I Comandos Simples e Repetições.
Revisão Luis Antonio Tavares
Comando de Seleção switch
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle.
Programação de Computadores I – Arquivos
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo IX Subprogramação e Recursividade.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo X Encadeamento de Estruturas por Ponteiros.
Introdução à Programação Engenharia da Computação Aula Prática 3 Funções Monitoria
Alô, mundo!. Vamos ao Dev C++ discutir os seguintes tópicos: – case sensitive – edentação – define – \n, \t, \a – tipos basicos: int, float, char – printf,
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
Fundamentos de Programação 1 Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Seqüências ou de Texto ”.
Computação – Informática Aula N. 05 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Matrizes em C”
Fundamentos de Programação 1 Slides 19 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Binários”.
Fundamentos de Programação 1 Aula N. 02 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Laços de Repetição em C”
Fundamentos de Programação 1 Slides 12 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Union, Enum e Typedef ”
Fundamentos de Programação 1 Slides C – Número 4 Prof. SIMÃO Jean Marcelo SIMÃO Estrutura de Dados Homogêneas “vetores de números e de caracteres”
Computação – Informática Aula N. 05 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Matrizes em C” 1.
CES-11 ALGORITMOS E ESTRUTURAS DE DADOS Aulas Práticas – 2017
Transcrição da apresentação:

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

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

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

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

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

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’

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

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: 198 0 17439&() 100110100011101 82736193826 01101001 1b5FD4 1 34528178 00 ff123e ABGkJX 98271 10 Copiar, salvar e executar

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);

Exemplo de saída, usando como entrada o arquivo01: Conjuntos maximos de um arquivo: Digite o nome do arquivo: arquivo01 Total: 14 conjuntos maximos 198 3 0 1 17439&() 8 100110100011101 15 82736193826 11 01101001 8 1b5FD4 6 1 1 34528178 8 00 2 ff123e 6 ABGkJX 6 98271 5 10 2 Digite algo para encerrar: arquivo01 198 0 17439&() 100110100011101 82736193826 01101001 1b5FD4 1 34528178 00 ff123e ABGkJX 98271 10 Saída no vídeo

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)

Exemplo de saída, usando como entrada o arquivo01: Conjuntos maximos de um arquivo: Digite o nome do arquivo: arquivo01 Total: 14 conjuntos maximos 198 3 0 1 17439&() 8 100110100011101 15 82736193826 11 01101001 8 1b5FD4 6 1 1 34528178 8 00 2 ff123e 6 ABGkJX 6 98271 5 10 2 6 numeros binarios 0 = compl-2 (0) 100110100011101 = compl-2 (-13027) 01101001 = compl-2 (105) 1 = compl-2 (-1) 00 = compl-2 (0) 10 = compl-2 (-2) Digite algo para encerrar:

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

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

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

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