Escola Superior de Tecnologia de setúbal. Departamento de Sistemas e Informática. Introdução à Programação - EEC / Exercícios Práticos

Documentos relacionados
Algoritmos e Programação

A linguagem C (visão histórica)

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

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

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

3. Linguagem de Programação C

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

Programação Estruturada

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

Treinamento Olimpíada Brasileira de Informática

Estruturas de Repetição

Linguagens de Programação

Controle de Fluxo Utilizando C

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

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

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

Módulo 5. Instruções if e switch. Algoritmos e Estruturas de Dados I C++ (Rone Ilídio)

Características da Linguagem C

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

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2011/2012

Faculdade de Computação

Linguagens de Programação I

3. Linguagem de Programação C

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS CURSO DE ENGENHARIA ELECTROTÉCNICA/INDUSTRIAL

Fundamentos de Programação1

Legibilidade do código fonte

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

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Slides trabalhados durante a quinta aula

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA DE CIÊNCIAS E TECNOLOGIA. ECT1203 Linguagem de Programação Turma Prof.

Universidade Federal do Espírito Santo. Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza

Introdução à linguagem C++

Conhecendo a Linguagem de Programação C

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

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

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

Modulo 3: Else, Case, For...

Linguagem C (estruturas condicionais)

Revisão C++ - Parte 1

A Linguagem C. A forma de um programa em C

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

Laboratório 3 Comandos de repetição while, do-while e for

Linguagem de Programação C

Programação Estruturada

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

Exercícios Repetição

Programação Estruturada I

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

Controle de Fluxo Utilizando C

Linguagem C: Elementos fundamentais

Linguagem de Programação. Thiago Leite Francisco Barretto

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA MODULARIZAÇÃO E ORGANIZAÇÃO DE CÓDIGO. Prof. Dr. Daniel Caetano

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

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

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

Linguagem C Princípios Básicos (parte 1)

ECT1203 Linguagem de Programação

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

Parte 1. Programação (linguagem C) Introdução Geral

Módulo 3 Controle de Fluxo

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

Disciplina de Algoritmos e Programação

Aula 3 Constantes e funções de E/S

Introdução à Linguagem C

Controlo do fluxo de execução

Linguagem de Programação C. Prof. Fabrício Olivetti de França

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

O objetivo deste questionário é levá-lo a rever os fundamentos da linguagem C. Nomeadamente, a utilização de instruções de seleção e de repetição.

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.

Entender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação

Introdução à Programação. Ciclos 1ª parte

Utilização da Linguagem C

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

1 Expressões, valores e tipos 1. 2 Variáveis e atribuições 5. cálculo de expressões segue a estrutura de parênteses e as prioridades dos operadores

UNIVERSIDADE DA BEIRA INTERIOR

Tópicos em C. Eliade F. Lima

Curso Básico de Programação Aula 11. Revisão Aula Anterior Laços de Repetição While; Do-While; For.

Ficha de trabalho nº3

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

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA MODULARIZAÇÃO E ORGANIZAÇÃO DE CÓDIGO. Prof. Dr. Daniel Caetano

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07

Introdução à Programação em C

Computação 2. Aula 8. Profª. Fabiany Arquivos

Programação de Computadores II Lista de Exercícios 01

C Comandos de Controle

Estruturas de Decisão

INFORMÁTICA APLICADA AULA 05 LINGUAGEM DE PROGRAMAÇÃO C++

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C1105 INTRODUÇÃO À PROGRAMAÇÃO EM C

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

Linguagem C: Introdução

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

Algoritmos e Programação

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

Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES. Linguagem C. Linguagem C Estrutura Básica. Constante (literais) Linguagem C Primeiro Programa

Universidade Federal do Espírito Santo. Programação II. CT IX - Sala 201 Departamento de Informática Centro Tecnológico

Introdução à Programação

Transcrição:

Escola Superior de Tecnologia de setúbal Departamento de Sistemas e Informática Introdução à Programação - EEC11104 2011 / 2012 Exercícios Práticos Algortimsos e Linguagem ANSI C Eng. Cédric Grueau

1 Algoritmos 2 Programas e Tipos de dados Exercício 1. Escreve um programa que lê do teclado um preço em Euros com cêntimos e que mostra: Arredondado ao Euro inferior Arredondado ao Euro mais próximo Arredondado ao quarto de Euro mais próximo float preco, a r r I n f, arrproximo, arrquart ; int i ; p r i n t f ( " Preco a arredondar? " ) ; s c a n f ( "%f ", &preco ) ; i = preco ; a r r I n f = i ; p r i n t f ( " euro i n f e r i o r : %f \n ", a r r I n f ) ; i = p r i x + 0. 5 ; arrproximo = i ; p r i n t f ( " euro mais proximo : %f \n ", arrproximo ) ; i = 4 preco + 0. 5 ; arrquart = i / 4. 0 ; p r i n t f ( " quarto mais proximo : %f \n ", arrquart ) ; / Exemplo de e x e c u o : preco a arredondar? 100.83 euro i n f e r i o r : 100.000000 euro mais proximo : 1 01.00 00 00 quarto mais proximo : 100.750000 / Exercício 2. Escreve um programa que lê do teclado um número decimal ( com vírgula ), que representa um preço sem IVA, que lê do teclado um outro número que representa a taxa de IVA (em percentagem) e que mostra o preço total com IVA. float precosemiva, taxaiva, p r e c o F i n a l ; 2

p r i n t f ( " Preco sem IVA? " ) ; s c a n f ( "%f ", &precosemiva ) ; p r i n t f ( " Taxa de IVA? " ) ; s c a n f ( "%f ", &taxaiva ) ; p r e c o F i n a l = precosemiva (1 + taxaiva / 1 0 0 ) ; p r i n t f ( " Prix TTC : %f \n ", p r e c o F i n a l ) ; Exercício 3. Escreve um programa que mostra a diferença entre A G entre a média aritmética A = (a + b)/2 e a média geométrica G = (axb) de dois números a e b nos casos seguintes: Os números são fixos (definidos no programa) Os números são adquiridos (lidos do teclado) #include <math. h> f loat a, b, marith, mgeo ; a = 2 ; b = 3 ; / p r i n t f ( " a? " ) ; s c a n f ("% f ", &a ) ; p r i n t f ( " b? " ) ; s c a n f ("% f ", &b ) ; / p r i n t f ( " a : %f \n ", a ) ; p r i n t f ( " b : %f \n ", b ) ; marith = ( a + b ) / 2 ; mgeo = s q r t ( a b ) ; p r i n t f ( " moyenne a r i t h m t i q u e : %f \n ", marith ) ; p r i n t f ( " moyenne g m t r i q u e : %f \n ", mgeo ) ; 3

3 Seleção Exercício 3. Escreve um programa que determina se um número inteiro lido do teclado é par o impar. int numero ; p r i n t f ( " numero? " ) ; s c a n f ( "%f ", &numero ) ; i f ( numero % 2!= 0) p r i n t f ( "%d e par \n ", numero ) ; else p r i n t f ( "%d e impar\n ", numero ) ; Exercício 4. O problema da maquina de troco. Escreve um programa que para um dado valor em Euros, sem cêntimos, imprime o número (minimal) de notas (50, 20, 10 e 5) e moedas (2 e 1) necessárias para o compor. Exemplo: I n s e r e o v a l o r do t r o c o : 178 178 = nota ( s ) de 50 : 3 nota ( s ) de 1 0 : 2 nota ( s ) de 5 : 1 moeda ( s ) de 2 : 1 moeda ( s ) de 1 : 1 int somme, q u o t i e n t ; p r i n t f ( "somme? " ) ; s c a n f ( "%d ", &somme ) ; p r i n t f ( "%d = ", somme ) ; q u o t i e n t = somme / 500; p r i n t f ( "%d x 500 + ", q u o t i e n t ) ; somme = somme % 5 00; q u o t i e n t = somme / 200; 4

p r i n t f ( "%d x 200 + ", q u o t i e n t ) ; somme = somme % 2 00; q u o t i e n t = somme / 100; p r i n t f ( "%d x 100 + ", q u o t i e n t ) ; somme = somme % 1 00; q u o t i e n t = somme / 5 0 ; p r i n t f ( "%d x 50 + ", q u o t i e n t ) ; somme = somme % 5 0 ; q u o t i e n t = somme / 2 0 ; p r i n t f ( "%d x 20 + ", q u o t i e n t ) ; somme = somme % 2 0 ; q u o t i e n t = somme / 1 0 ; p r i n t f ( "%d x 10 + ", q u o t i e n t ) ; somme = somme % 1 0 ; q u o t i e n t = somme / 5 ; p r i n t f ( "%d x 5 + ", q u o t i e n t ) ; somme = somme % 5 ; q u o t i e n t = somme / 2 ; p r i n t f ( "%d x 2 + ", q u o t i e n t ) ; somme = somme % 2 ; i f (somme!= 0) p r i n t f ( "%d ", somme ) ; p r i n t f ( " \n " ) ; int b i l l e t s [ ] = { 500, 200, 100, 50, 20, 10, 5, 2, 1 ; int n B i l l e t s = sizeof b i l l e t s / sizeof b i l l e t s [ 0 ] ; 5

int somme, quotient, i ; p r i n t f ( "somme? " ) ; s c a n f ( "%d ", &somme ) ; p r i n t f ( "%d = ", somme ) ; for ( i = 0 ; i < n B i l l e t s ; i++) { q u o t i e n t = somme / b i l l e t s [ i ] ; somme = somme % b i l l e t s [ i ] ; { p r i n t f ( "%d x %d ", quotient, b i l l e t s [ i ] ) ; i f (somme!= 0) p r i n t f ( " + " ) ; p r i n t f ( " \n " ) ; Exercício 5. Escreve um programa que lê do teclado a data do dia, expressa sob a forma de três números: d (dia), m (mês), a (ano) e que calcula e mostra a data do dia seguinte. Partimos do pressuposto que a data é correta. Si (j, m, a) n est pas le dernier jour d un mois alors son lendemain est (j+1, m, a), sinon c est (1, m+1, a) sauf si m = 12, auquel cas le lendemain est (1, 1, a+1). Nous devons donc écrire la condition qui caractérise que (j, m, a) est le dernier jour d un mois, ce qui équivaut, puisque la date est garantie correcte, à : j = 31, ou bien j = 30 et le mois est avril, juin, septembre ou novembre, ou bien j = 29 et le mois est février, ou bien j = 28, le mois est février et l année n est pas bissextile. D autre part, une année est bissextile si elle est divisible par 4 mais pas par 100. Cependant, les années multiples de 400 sont bissextiles. D où le programme suivant, dans lequel on reconnaît sans peine la traduction des quatre cas ci-dessus. #include <math. h> int j, m, a, i ; p r i n t f ( " j m a?\n " ) ; s c a n f ( "%d%d%d ", &j, &m, &a ) ; i f ( j == 31 6

( j == 30 && (m == 4 m == 6 m == 9 m == 11)) ( j == 29 && m == 2) ( j == 28 && m == 2 &&! ( a % 4 == 0 && a % 100!= 0 a % j = 1 ; i f (m == 12) { m = 1 ; a = a + 1 ; else m = m + 1 ; else j = j + 1 ; p r i n t f ( "%d %d %d\n ", j, m, a ) ; Exercício 6. O que será mostrado no ecrã durante a execução deste programa? int main ( void ) { unsigned char i =7; i=i / 2 ; switch ( i ) { case 1 : p r i n t f ( " Primeiro \n " ) ; break ; case 2 : p r i n t f ( " Segundo\n " ) ; break ; case 3 : p r i n t f ( " T e r c e i r o \n " ) ; break ; default : p r i n t f ( " Nao c l a s s i f i c a d o \n " ) ; return 1 ; Exercício 7. O que será mostrado no ecrã durante a execução deste programa? int main ( void ) { int i =18; i=i ( i ) ; switch ( i ) { case 1 : p r i n t f ( " Primeiro \n " ) ; p r i n t f ( " Primeiro \n " ) ; case 2 : p r i n t f ( " Segundo\n " ) ; case 3 : p r i n t f ( " T e r c e i r o \n " ) ; 7

default : p r i n t f ( " Nao c l a s s i f i c a d o \n " ) ; return EXIT_SUCCESS; 4 Repetições Exercício 1. O que será mostrado no ecrã durante a execução deste programa? int main ( void ){ int i ; for ( i =0; i <5; i ++) { p r i n t f ( " Modulo EC%d\n ", ( i +9)/( i +1)); return EXIT_SUCCESS; Exercício 2. O que será mostrado no ecrã durante a execução deste programa? int main ( void ){ unsigned char i ; unsigned char tab [ 5 ] ; // i n i c i a l i z a o da t a b e l a tab [ 0 ] = 1 ; tab [ 1 ] = 2 ; tab [ 2 ] = 4 ; tab [ 3 ] = 8 ; tab [ 4 ] = 1 6 ; for ( i =0; i <5; i ++) { p r i n t f ( "O %d elemento e %d\n ", i +1, tab [ i ] ) ; return EXIT_SUCCESS; Exercício 3. Escrever um programa em C que pede ao utilizador para inserir 10 inteiros e que mostra a sua soma. O programa deverá utilizar só 3 variáveis. Exercício 4. Alterar o programa anterior (Exercício 3) para que possa aceitar qualquer número de inteiros (positivos ou nulos). A inserção de um inteiro negativo permite parar a leitura de valores. O novo programa deverá mostrar a seguir a media dos valores inseridos. Quais são os valores assumidos pela variável media? 8

Exercício 5. O que será mostrado no ecrã durante a execução deste programa? int int i, j ; system ( cls " ) ; // system ( " c l e a r " ) para windows f o r ( i =0; i <5; i ++){ f o r ( j=i ; j <5; j++) p r i n t f ( " " ) ; p r i n t f ( " \n " ) ; return EXIT_SUCCESS; Exercício 6. O que será mostrado no ecrã durante a execução deste programa? Int int i, j ; system ( " c l e a r " ) ; for ( i =0; i <5; i ++){ for ( j=5 i ; j <5; j++) p r i n t f ( "++" ) ; p r i n t f ( " \n " ) ; return EXIT_SUCCESS; Exercício 7. Escreve um programa que mostra todos os pares ( a, b ), onde a é um inteiro entre 1 e S e b é um inteiro entre 1 e T; S e T são dois inteiros lidos do teclado. O formato em que devem aparecer segue o exemplo seguinte em que S = 3 e T = 5 : ( 1, 1 ) ( 1, 2 ) ( 1, 3 ) ( 1, 4 ) ( 1, 5 ) ( 2, 1 ) ( 2, 2 ) ( 2, 3 ) ( 2, 4 ) ( 2, 5 ) ( 3, 1 ) ( 3, 2 ) ( 3, 3 ) ( 3, 4 ) ( 3, 5 ) int p, q, i, j ; 9

p r i n t f ( " p q? " ) ; s c a n f ( "%d%d ", &p, &q ) ; for ( i = 1 ; i <= p ; i++) { for ( j = 1 ; j <= q ; j++) p r i n t f ( " ( %d, %d ) ", i, j ) ; p r i n t f ( " \n " ) ; Exercício 8. Escreve um programa que calcula o fatorial de um número lido do teclado. int f a t o r i a l = 1, i ; p r i n t f ( " numero? " ) ; s c a n f ( "%d ", &numero ) ; for ( i = 2 ; i <= numero ; i++) f a t o r i a l = f a t o r i a l i ; p r i n t f ( " f a t o r i a l de %d e %d ) ", numero, f a t o r i a l ) ; Exercício 9. Escreve um programa que mostra os valores dos senos de todos os ângulos de 0 a 90 graus, por passos de 15 graus. Procura-se que sejam mostrados da seguinte forma: s i n ( 0 ) = 0.000000 s i n (15) = 0.258819 s i n (30) = 0.500000... s i n (90) = 1.000000 La seule difficulté est de se rappeler que les fonctions trigonométriques de la bibliothèque requièrent leur argument exprimé en radians (180 degrés = PI radians) alors que nous devons l afficher en degrés. D où une conversion à faire au moment de l appel de la fonction sin : #include <math. h> 10

int a, pi = 4 atan ( 1 ) ; a = 0 ; while ( a <= 90) { p r i n t f ( " sen(%d ) = %f \n ", a, s i n ( a ( pi / 1 8 0 ) ) ) ; a = a + 1 5 ;... for ( a = 0 ; a <= 9 0 ; a = a + 15) p r i n t f ( " s i n (%d ) = %f \n ", a, s i n ( a pi / 1 8 0 ) ) ; Exercício 10. Alterar o programa anterior de forma a que sejam mostrados os valores dos senos dos ângulos de 0 até 90 graus por passos de S graus, onde S é um valor lido do teclado. Exercício 11. Alterar o programa anterior para que os valores dos senos dos ângulos de D até E graus, por passos de S graus, onde D, E e S são valores lidos do teclado. #include <math. h> int a, b, p, pi = 4 atan ( 1 ) ; p r i n t f ( " donnez a b p : " ) ; s c a n f ( "%d%d%d ", &a, &b, &p ) ; for ( ; a <= b ; a = a + p ) p r i n t f ( " s i n (%d ) = %f \n ", a, s i n ( a pi / 1 8 0 ) ) ; 11