Resumo da matéria: - Sintaxe da definição duma função C: - Diagramas sintácticos do if e dos mecanismos de ciclos em C:

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

Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1

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

Curso de C. Declaração de Variáveis 18/3/ :48 1

Linguagens de Programação I

Introdução à Linguagem C

Aula 05: Condicionais (if / else)

Aula 16: Laços aninhados e desvios

Introdução à Programação

Aula 12- Variáveis e valores reais

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

Aula 2 Comandos de Decisão

Disciplina de Algoritmos e Programação

Funções de Entrada e Saída Formatada Constantes de barra invertida

Técnicas de Programação: Comandos de Controle de DEE UFPB

Estruturas de Decisão e loops

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

ESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza

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

Introdução à Computação

Sub-rotinas David Déharbe

Algoritmos e Programação

Linguagem C. André Tavares da Silva.

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

Comandos de Repetição -Laços

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

Legibilidade do código fonte

Aula 15: Repetição (Parte 3)

Linguagem C (repetição)

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

Linguagem C: Introdução

Aula 14: Estruturas de Seleção e Controle em C

Linguagem C Controle do Fluxo de Execução. Lógica de Programação

ESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza

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

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Aula 4. Comandos de Repetição. Prof. Filipe Mutz.

1) Operadores de auto incremento ++ e auto decremento --

Introdução à Programação

Algoritmos RESUMO - LINGUAGEM C

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

Modulo 3: Else, Case, For...

A linguagem C (visão histórica)

Laços de repetição for, while, do-while

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

MAC 2166 Introdução à Computação para Engenharia

Conceitos básicos. Computação eletrônica: Gurvan Huiban

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

C Comandos de Controle

Introdução à Programação em C

INF 1620 P1-04/10/03 Questão 1 Nome:

Exercícios Repetição

scanf () Funções de Entrada e Saída Formatada leitura de dados; formato geral: scanf (string_de_controle,lista_de_argumentos);

Cap. 3 Entrada e Saída e Controle de Fluxo

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

DURAÇÃO DA PROVA: 2 horas

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

Conhecendo a Linguagem de Programação C

COMANDOS DE DECISÕES. O COMANDO if. O comando if instrui o computador a tomar uma decisão simples. Forma Geral: if (expressão de teste) instrução;

3. Linguagem de Programação C

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

Comando Switch. Embora a escada if else-if possa executar testes de várias maneiras, ela não é de maneira nenhuma elegante.

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Faculdade de Computação

Fundamentos de Programação 1

Algoritmos e Técnicas de Programação. Professora: Luciana Faria

Aula 06: Condicionais (switch)

Linguagens de Programação

O que é a modularização

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

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

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

Linguagem de Programação C

Computação 2. Aula 2. Profª. Fabiany Vetores e Matrizes

INF 1620 P1-13/09/02 Questão 1 Nome:

Estruturas de Controle em Linguagem C

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

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

Aula 14: Repetição (Parte 2)

Leitura Segura de Strings

Introdução à Linguagem C Variáveis e Expressões

Linguagens de programação. Introdução ao C (continuação)

Módulo 3 Controle de Fluxo

Utilização da Linguagem C

Programação: Vetores

Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: C

Introdução à Programação Aula 07. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Linguagem C (estruturas condicionais)

Conceito de procedimentos e funções

imprimir seus quadrados.

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

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Computação Informática

Modulo 4: while do while (limites de variáveis)

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.

Estruturas de Repetição

Transcrição:

Aula de PGI 15.4.2014 Exercícios que envolvem ciclos e funções Resumo da matéria: - Sintaxe da definição duma função C: tipovalorretorno nomedafuncao( tipo nomevar, tipo nomevar1 ){ int v; // Aqui consta -> sequência de instruções que a função realiza return v;//terá return sse a função retornar um valor v - Diagramas sintácticos do if e dos mecanismos de ciclos em C: Nota: Esta figura foi criada pelo prof. Pedro Pereira cc-isel Tabela esquemática do uso dos 3 mecanismos de repetição de controlo de fluxo: while, for(;;) e o do while Ei inicio de controle while while( Ea ) { Ei de controle while Ei expressão de controlo do Ea for( Ei; Ea; Ep ) { Ei inicio controle do while do{ Ei de controle do while while( Ea ); Ea expressão de avaliação que se relaciona com Ei Ep expressão do passo de incremento/decremento que controla Ea

1º Exercício - Analise o seguinte programa e reescreva o usando a definição de funções caso seja adequado e as suas chamadas. / nome : calcsqrt.c data : Mar 11, 2014 autor : mfc@isel.pt descricão: calcula a raiz quadrada de um numero real positivo maior ou igual a 1.0 com PRECISAO (0.00001). / #include <stdio.h> #include <stdlib.h> #include <math.h> //definir duas constantes modo anterior do C99 (ainda são validas) //#define MAX_REPETICOES 100 //definição de constante //#define PRECISAO 0.000001 //definição de constante //definição de duas constantes em C99 (definição a ser usada) const int MAX_REPETICOES=100; //MAX_REPETICOES de iteracoes const double PRECISAO=0.000001;//PRECISAO a 6 casas decimais int main(){ double num ; //numero a saber a raiz quadrada int raiz; //calcular a rais do nº num int res; do{ printf("\ndigite um numero real positivo: "); res=scanf("%lf",&num); if( res!=1 ) { printf("erro de leitura de valor real\n"); exit(0);//termina o programa se for executada while( num<1.0 );//aceita somente num >=1.0 double inf = 0.0; //inicia intervalo inicial de busca double sup = num; int i; //define e inicia o contador de controlo do for(;;;) for( i=0; (sup-inf)>precisao && i<max_repeticoes; ++i ) { raiz = 0.5 (inf + sup);//faz estimativa de raiz if( (raizraiz)>num ){ sup = raiz; //baixa limite superior else{ inf = raiz; //sobe limite inferior raiz = 0.5 (inf + sup); // estima a raiz printf("raiz: %lf +/- %lf",raiz,precisao); //Diga qual o significado do código da linha seguinte em comentário? //Faça a função com este código, e o 2 de pow(10,2) passe a ser um parâmetro //bem como o valor raiz. // raiz = (long)(raizpow(10,2))/pow(10,2); // printf("raiz: %.2lf +/- %lf",raiz,precisao); printf("\n"); return 0;

2º Exercício Ler do teclado um número inteiro positivo maior que 0 e menor que 4000 e apresentar no terminal a notação romana desse número. Use a decomposição do problema em problemas mais pequenos para construir um programa em C onde defina as funções e as chame. Exemplo ilustrativo 2014 => MMXIV A figura seguinte ilustra uma tabela resumo dos nº romanos. 3º Exercício Pretende-se desenhar para o terminal letras maiúsculas gigantes que sejam lineares (formato rectangular), O programa aceita as seguintes letras: A,C,E,F,H,I,L,O,P,T,U e, para tal, deve ler do teclado qual a letra que pretende desenhar e dois número inteiros positivos maiores que 4 e múltiplos de 5 em que o primeiro significa a altura da letra e o segundo significa a largura. O valor máximo do primeiro é 25 e o valor máximo do segundo é 60. As medidas internas de cada letra devem ser proporcionais às medidas lidas altura e comprimento. Elabore em C o programa, usando a definição de funções e a sua chamada para implementar este exercício. Vejamos os exemplos de letra E de 25 por 40 e da letra T de 25 por 40 (as outras dimensões são factores de escalas de 25 e de 40):

4º Exercício - Analise o seguinte programa e reescreva o usando a definição de funções caso seja adequado e as suas chamadas. / Name: lista2exer05lerseqletras.c Created on: Abril 8, 2014 Author: mfc@isel.pt Description: Resolução do 5ºexercício da 2ª lista de exercícios do 2s13.14 / #include <stdio.h> const int FACTOR=3; int main( void ) { //a variavel char pode e deve ser int, porque o valor retornado //pelo leitura quando o ficheiro termina é -1. //as funções de leitura podem ser: //c=getchar(), c=getc(stdin), c=fgetc(stdin), scanf("%d",&c); int c;//quando se lê com: c=getchar(); c=getc(stdin); c=fgetc(stdin); usa a definição int c; //usar char c; //quando se lê caracter através do scanf em int r=scanf("%c",&c); //o EOF r=-1; //char c; printf("digite uma linha de texto (sequencia de caracteres) termina com mudanã a de linha\n"); unsigned char contachar, contaa, contae, contai, contao, contau; contachar=contaa=contae=contai=contao=contau=0; int r=0; // while( (r=scanf("%c",&c))!=-1 ){ //r=scanf("%c",&c);//pode ler mais do que um caracter =>r=scanf("%c%c.%c",&c1,&c2,... &ck); while( (c=getchar())!=-1 ){ //c=getchar(); //estas 3 funções lêem um só caracter, o ficheiro é o stdin (teclado) //c=getc(stdin); //temos que escrever em argumento o nome do ficheiros - stdin //c=fgetc(stdin);//o fim-ficheiro do teclado é simulado com o digitar de duas teclas: ctrl d contachar++; switch( c ) { case 'A': case 'a' : contaa++; break; case 'E': case 'e' : contae++; break; case 'I': case 'i' : contai++; break; case 'O': case 'o' : contao++; break; case 'U': case 'u' : contau++; break; //encontrar qual o contador que tem maior valor int m=contaa; if( contae> m ) m=contae; if( contai> m ) m=contai; if( contao> m ) m=contao; if( contau> m ) m=contau; m = m + FACTOR; int i=0; for( ;i<contaa; ++i ) { if( i==0 ) printf("a, a "); if( contaa ) { for( i=0; i<(m-contaa); ++i ) { printf(" "); printf("(%d)\n",contaa); for( i=0; i<contae; ++i ) { if( i==0 ) printf("e, e "); if( contae ) { for( i=0; i<(m-contae); ++i ) { printf(" "); printf("(%d)\n",contae); for( i=0; i<contai; ++i ) { if( i==0 ) printf("i, i ");

if( contai ) { for( i=0; i<(m-contai); ++i ) { printf(" "); printf("(%d)\n",contai); for( i=0; i<contao; ++i ) { if( i==0 ) printf("o, o "); if( contao ) { for( i=0; i<(m-contao); ++i ) { printf(" "); printf("(%d)\n",contao); for( i=0; i<contau; ++i ) { if( i==0 ) printf("u, u "); if( contau ) { for( i=0; i<(m-contau); ++i ) { printf(" "); printf("(%d)\n",contau); printf("total de caractres lidos %d",contachar); printf("\n"); return 0;