Introdução à Programação em C (II)

Documentos relacionados
Introdução à Programação em C Input / Output

Introdução à Programação em C

Introdução à Programação (CC111)

3.1 - Funções para manipular dados de entrada e saída padrão

Introdução à Programação em C

Introdução à Programação

Funções de Entrada e Saída

Introdução à Programação em C (I)

11 - Estrutura de um programa em C

Introdução à Programação em C (I)

[epd94, Cap ] Usualmente pretendem-se valores noutros intervalos...se for entre 0 e a-1: srand() % a

Linguagens de Programação

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Introdução à Programação. Strings

Linguagem C. André Tavares da Silva.

Estrutura do programa

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Declarações. C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N!

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Linguagem C (repetição)

Aula 03: Introdução a C

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Capítulo 2 Operadores. A função scanf()

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

13 Operadores relacionais

Para começar... Para começar... Para começar... Para começar... Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Estruturas condicionais...

Introdução à Linguagem C

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Métodos Computacionais em Física

K&R: Capitulo 2 IAED, 2012/2013

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Aula 03 -Introdução àlinguagc Programação: Estrutura-Repetição. OPL e IC1 Prof: Anilton Joaquim da Silva

Princípios de Desenvolvimento de Algoritmos MAC122

3. Linguagem de Programação C

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014

Introdução à Programação

Ponteiros e Tabelas. K&R: Capítulo 5

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Escreva a função e_caracter que verifica se um determinado caracter é um numero ou não. Escreva um Programa de teste da função.

UNIVERSIDADE DA BEIRA INTERIOR

Estruturas condicionais

ESTRUTURAS COMPOSTAS

Programação Estruturada

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Guia de bolso - Prof. César Melo

Introdução a Computação

MC102 Algoritmos e Programação de Computadores

Introdução à Programação

Linguagem C. Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira

ponteiros INF Programação I Prof. Roberto Azevedo

Sumário. Ficheiros. Ficheiros

Conceitos básicos de programação

Comandos de entrada. e saída. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada.

Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados - Prof. Alessandro Zimmer Introdução à Linguagem C

A linguagem C (visão histórica)

Conhecendo a Linguagem de Programação C

Programação Estruturada

Introdução à Programação em C

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Ambiente de desenvolvimento

ESTRUTURAS COMPOSTAS VETOR

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres

Legibilidade do código fonte

4.1- Aritméticos + soma - subtração * multiplicação / divisão % módulo (resto da divisão de inteiros ).

MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais

Matrizes em C. Lucas Ferrari de Oliveira Professor Adjunto. Universidade Federal do Paraná

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre

Char e Strings de Caracteres

ESTRUTURAS DE CONTROLE

Introdução a Programação. Strings (Vetor de Caracteres)

Algoritmos e Programação

Char e Strings de Caracteres

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008

Estruturas de Repetição

Algoritmos RESUMO - LINGUAGEM C

Mestrado em Engenharia Física Tecnológica

Programação estruturada

Conceitos Básicos de C

Estruturas. K&R: Capitulo 6. Estruturas IAED, 2014/2015. Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo

Estruturas de Controle

Laboratório de Programação. Prof. Oscar Luiz Monteiro de Farias

Linguagem C: Introdução

Programação: Vetores

Introdução à Programação

Linguagem C. Prof.ª Márcia Jani Cícero

Algoritmos: Conceitos Fundamentais

Programação de Computadores II

Linguagem de Programação C

Linguagem C/C++ Estrutura Condicional. Prof: Rosemary Melo

Introdução à Linguagem C. Adaptado de Deise Saccol

Olimpíadas de Informática Aulas preparatórias Introdução a Programação em C.

Linguagem de Programação C

Aula 15: Repetição (Parte 3)

Introdução à Computação MAC0110

Introdução a Programação na Linguagem C.

5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios.

Transcrição:

Introdução à Programação em C (II)

Resumo Streams de Texto Leitura e escrita de caracteres Caracteres como números inteiros Exemplos Cópia de Ficheiros Contagem de Caracteres Contagem de Linhas Contagem de Palavras 2

Cópia de Ficheiros Text stream: sequência de caracteres entrada saída Podem corresponder a leitura/escrita de ficheiros ou leitura/escrita do terminal (standard input/output) Cada linha contém 0 ou mais caracteres e acaba com o caracter \n Funções de manipulação de text streams getchar() lê o proximo caracter da text stream putchar() escreve o caracter cujo código ASCII é o número inteiro passado como argumento 3

Cópia de Ficheiros Algoritmo Lê um caracter Escreve caracter Lê próximo caracter 4

Cópia de Ficheiros Algoritmo Lê um caracter Escreve caracter Lê próximo caracter 5

Cópia de Ficheiros Algoritmo Lê um caracter Enquanto o caracter não for o de fim de ficheiro Escreve caracter Lê próximo caracter 6

Cópia de Ficheiros Algoritmo Lê um caracter c = getchar(); Enquanto o caracter não for o de fim de ficheiro while (c!= EOF) { Escreve caracter putchar(c); Lê próximo caracter c = getchar(); 7

Cópia de Ficheiros #include <stdio.h> /* Copia input para output */ main () { int c; c = getchar(); while (c!= EOF){ putchar(c); c = getchar();!= significa diferente Porquê int c? Constante EOF 8

Tabela ASCII Imagem retirada de: http://www.cdrummond.qc.ca/cegep/ informat/professeurs/alain/files/ascii.htm 9

Cópia de Ficheiros c = getchar(); while (c!= EOF){ putchar(c); c = getchar(); while ((c = getchar())!= EOF) putchar(c); Precedência de!= maior do que = while (c = getchar()!= EOF) Necessários parênteses em: while ((c = getchar())!= EOF) 10

Contagem de Caracteres Algoritmo Inicializa contador a 0 Enquanto o caracter lido não for o de fim de ficheiro Incrementa contador Escreve valor do contador 11

Contagem de Caracteres Algoritmo Inicializa contador a 0 contador = 0; Enquanto o caracter lido não for o de fim de ficheiro while (getchar()!= EOF) Incrementa contador ++contador; Escreve valor do contador printf("%ld\n", contador); 12

Contagem de Caracteres #include <stdio.h> /* Conta caracteres no ficheiro de entrada */ main () { long contador; contador = 0; while (getchar()!= EOF) ++contador; printf("%ld\n", contador); 13

Contagem de Caracteres #include <stdio.h> /* Conta caracteres no ficheiro de entrada */ main () { long contador; contador = 0; while (getchar()!= EOF) ++contador; printf("%ld\n", contador); Variável do tipo long int Pelo menos 32 bits para guardar o inteiro %ld para escrever com printf 14

Contagem de Caracteres #include <stdio.h> /* Conta caracteres no ficheiro de entrada */ main () { long contador; contador = 0; while (getchar()!= EOF) ++contador; printf("%ld\n", contador); Incremento da variável contador Em geral mais eficiente do que contador=contador+1 contador++, --contador, contador-- 15

Contagem de Caracteres contador = 0; while (getchar()!= EOF) ++contador; for (contador = 0; getchar()!= EOF; ++contador) ; Inicialização de variáveis: contador = 0 Teste: getchar()!= EOF Incremento: ++contador 16

Contagem de Caracteres #include <stdio.h> /* Conta caracteres no ficheiro de entrada */ main () { long contador; for (contador = 0; getchar()!= EOF; ++contador) ; printf("%ld\n", contador); 17

Contagem de Caracteres #include <stdio.h> /* Conta caracteres no ficheiro de entrada */ main () { double contador; for (contador = 0; getchar()!= EOF; ++contador) ; printf("%.0f\n", contador); Alternativa ao anterior Utiliza double em vez de long Usar %f para escrever dados dos tipos float e double 18

Contagem de Linhas Algoritmo Inicializa contador a 0 Enquanto o caracter lido não for o de fim de ficheiro Se o caracter lido for o de fim de linha então Incrementa contador Escreve valor do contador 19

Contagem de Linhas Algoritmo Inicializa contador a 0 contador = 0; Enquanto o caracter lido não for o de fim de ficheiro while ((c = getchar())!= EOF) Se o caracter lido for o de fim de linha então if (c == \n ) Incrementa contador ++contador; Escreve valor do contador printf("%d\n",contador); 20

Contagem de Linhas #include <stdio.h> /* conta linhas no ficheiro de entrada */ main () { int caracter, contador; contador = 0; while ((caracter = getchar())!= EOF) if (caracter == \n ) ++contador; printf("%d\n",contador); 21

Contagem de Linhas #include <stdio.h> /* conta linhas no ficheiro de entrada */ main () { int caracter, contador; contador = 0; while ((caracter = getchar())!= EOF) if (caracter == \n ) ++contador; printf("%d\n",contador); Teste de igualdade == Código ASCII do caracter de mudança de linha \n 22

Contagem de Caracteres e Palavras Algoritmo Inicializa estado a FORA Inicializa contador de caracteres e palavras a 0 Enquanto o caracter lido não for o de fim de ficheiro Incrementa contador de caracteres Se o caracter lido for o de fim de linha, espaço ou tabulação então Estado toma valor FORA Caso contrário e se o estado for FORA então Estado toma valor DENTRO Incrementa contador de palavras Escreve valor dos contadores 23

Contagem de Caracteres de Palavras Algoritmo Inicializa estado a FORA estado = FORA; Inicializa contador de caracteres e palavras a 0 np = nc = 0; Enquanto o caracter lido não fôr o de fim de ficheiro while ((c = getchar())!= EOF) { Incrementa contador de caracteres ++nc; Se o caracter lido for o de fim de linha, espaço ou tabulação então if (c == c == \n c == \t ) Estado toma valor FORA estado = FORA; Caso contrário e se o estado for FORA então else if (estado == FORA) { Estado toma valor DENTRO estado = DENTRO; Incrementa contador de palavras ++np; Escreve valor dos contadores printf("%d %d\n", np, nc); 24

Contagem de Caracteres de Palavras #include <stdio.h> #define FORA 0 /* fora de uma palavra */ #define DENTRO 1 /* dentro de uma palavra */ main () { int c, np, nc, estado; 25 estado = FORA; np = nc = 0; while ((c = getchar())!= EOF) { ++nc; if (c == c == \n c == \t ) estado = FORA; else if (estado == FORA) { estado = DENTRO; ++np; printf("%d %d\n", np, nc);

Contagem de Caracteres e Palavras main () { int c, np, nc, estado; estado = FORA; np = nc = 0; while ((c = getchar())!= EOF) { ++nc;... Atribuição múltipla Equivale a (np = (nc = 0)); 26

Contagem de Caracteres e Palavras if (c == c == \n c == \t ) estado = FORA; else if (estado == FORA) { estado = DENTRO; ++np; Operador lógico disjunção Operador lógico conjunção && (maior precedência que ) Argumentos avaliados da esquerda para direita Interrompe avaliação quando valor do argumento for suficiente para definir valor da expressão. 27

Contagem de Caracteres e Palavras if (c == c == \n c == \t ) estado = FORA; else if (estado == FORA) { estado = DENTRO; ++np; Instrução if-then-else Síntaxe: if (<expressão>) <instrução> else <instrução> 28

Cartão perfurado com uma linha de programa 29

Exercício para Casa (1) Construa um programa que lê caracteres do standard input e conta o número de algarismos. 30

Exercício para Casa (2) Construa um programa que lê caracteres do standard input e conta o número de letras minúsculas e o número de letras maiúsculas no texto. 31