Lista01

7
Programação de Computadores 1 Lista 1 Prof. Glauber M. Cabral [email protected] DECSI - ICEA - UFOP 4 de Abril de 2014 Instruções para a entrega da lista 1. A entrega da lista é individual, mas o estudo em grupo é altamente recomendado! 2. Não pratique plágio! Seja esperto e tente resolver todos os exercícios. Plágio não o ajudará na hora da prova. :D 3. Cada aluno deve enviar um arquivo ZIP com o nome pc1_lista1_TURMA_MATRICULA.zip, em que: TURMA é o código de dois dígitos da turma do aluno; MATRICULA é o código de matrícula do aluno sem os ponto-finais separadores. 4. O arquivo ZIP deve possuir uma pasta de mesmo nome, ou seja, com o nome pc1_lista1_TURMA_MATRICULA. 5. Na pasta citada deve estar um arquivo-fonte para cada exercício, no formato exercicio_NUMERO.c, em que NUMERO é o número do exercício na lista. 6. As respostas para os exercícios das seções 1 e 2 devem estar em um arquivo de texto simples em codificação UTF-8 com nome respostas.txt contendo as respostas para cada item. Utilize o Bloco de Notas do Windows e escolha Salvar Como, escolhendo a Codificação UTF-8. 1 Variáveis e Tipos de Dados 1. Você, como programador, é responsável por modelar os problemas reais no computador. Como parte disto, você deve escolher os tipos das variáveis que armazenarão os dados no seu programa. Para cada problema abaixo, defina o tipo de variável que deve ser usada. a) O número de portas de uma casa. b) A idade dos alunos ingressantes. c ) O conceito para avaliação de desempenho de um aluno, medido em A, B, C, D e E. d ) O conceito para avaliação de desempenho de um aluno, medido em um intervalo de 0 (inclusive) a 10 (inclusive), com incrementos de 0, 5. e) O salário de um funcionário. f ) A resposta para uma pergunta cujas respostas possíveis são Verdadeiro ou Falso. g ) A resposta para uma pergunta cujas respostas possíveis são a, b, c, d e e. 1

description

Exercicios Prog I

Transcript of Lista01

  • Programao de Computadores 1Lista 1

    Prof. Glauber M. [email protected] - ICEA - UFOP

    4 de Abril de 2014

    Instrues para a entrega da lista1. A entrega da lista individual, mas o estudo em grupo altamente recomendado!2. No pratique plgio! Seja esperto e tente resolver todos os exerccios. Plgio no o

    ajudar na hora da prova. :D3. Cada aluno deve enviar um arquivo ZIP com o nome pc1_lista1_TURMA_MATRICULA.zip, em

    que: TURMA o cdigo de dois dgitos da turma do aluno; MATRICULA o cdigo de matrcula do aluno sem os ponto-finais separadores.

    4. O arquivo ZIP deve possuir uma pasta de mesmo nome, ou seja, com o nomepc1_lista1_TURMA_MATRICULA.

    5. Na pasta citada deve estar um arquivo-fonte para cada exerccio, no formato exercicio_NUMERO.c,em que NUMERO o nmero do exerccio na lista.

    6. As respostas para os exerccios das sees 1 e 2 devem estar em um arquivo de texto simples emcodificao UTF-8 com nome respostas.txt contendo as respostas para cada item. Utilize o Bloco deNotas do Windows e escolha Salvar Como, escolhendo a Codificao UTF-8.

    1 Variveis e Tipos de Dados1. Voc, como programador, responsvel por modelar os problemas reais no computador. Como parte

    disto, voc deve escolher os tipos das variveis que armazenaro os dados no seu programa. Paracada problema abaixo, defina o tipo de varivel que deve ser usada.a) O nmero de portas de uma casa.b) A idade dos alunos ingressantes.c) O conceito para avaliao de desempenho de um aluno, medido em A, B, C, D e E.d) O conceito para avaliao de desempenho de um aluno, medido em um intervalo de 0 (inclusive)

    a 10 (inclusive), com incrementos de 0, 5.e) O salrio de um funcionrio.f ) A resposta para uma pergunta cujas respostas possveis so Verdadeiro ou Falso.g) A resposta para uma pergunta cujas respostas possveis so a, b, c, d e e.

    1

  • 2. Sobre o funcionamento do tipo de dados char, responda o que est armazenado na varivel abaixoem cada linha:

    char numero;numero = 9;numero = 9;

    2 Expresses Lgicas e Relacionais3. Supondo as declaraes int A = 3, int B = 7 e int C = 4, calcule o valor as expresses abaixo:

    a) (A + C) > Bb) B >= (A + 2)c) C == (B A)d) (B + A) B

    4. Supondo as declaraes int A = 5, int B = 4, int C = 3 e int D = 6, calcule o valor as expressesabaixo:a) (A > C) && (C 10 || (A + B) == (C + D)c) (A >= C)&& (D >= C)

    5. Supondo as declaraes int A = 5, int B = 4, int C = 3, char C1 = 'A', char C2 = 'a' e int L =0, calcule o valor as expresses abaixo:a) B == A C && Lb) C1 == C2 || 'F' != 'Q'c) A + C < 5d) A C / B > A B Ce) ! L

    6. Supondo as declaraes int A = 3, int B = 5, int C = 8, int D = 7 e int X = 1, calcule o valor asexpresses abaixo:a) !(X > 3)b) (X < 1) && (!(B > D))c) !(D < 0) && (C > 5)d) !( (X > 3) || (C < 7) )e) (A > B) || (C > B)f ) X >= 2g) (X < 1) && (B >= D)h) (D < 0) || (C > 5)i) !(D > 3) || !(B < 7)

    3 Entrada e Sada7. Codifique um programa que leia dois valores inteiros nas variveis a e b e troque os valores contidos

    nas variveis. Para verificar a troca, imprima o contedo das variveis aps a leitura e aps a trocados valores.

    2

  • 8. Codifique um programa que pergunte ao usurio a altura e a base de um retngulo e imprima a reae o permetro deste retngulo.

    9. Codifique um programa que pergunte ao usurio o raio de um crculo e imprima a rea e o permetrodeste crculo.

    10. Codifique um programa que leia os trs lados de um tringulo e imprima a rea e o permetro destetringulo. Para o clculo da rea, deve-se utilizar a frmula de Heron:

    Area =aux(aux lado1)(aux lado2)(aux lado3)

    em queaux = lado1 + lado2 + lado32

    4 Desvios Condicionais: if11. Codifique um programa que, dado um nmero, o classifique como par ou mpar.12. Codifique um programa que, dado um nmero, o classifique como positivo, negativo ou neutro (0).13. Codifique um programa que leia um par ordenado (x, y) e informe a qual quadrante ele pertence.14. Codifique um programa que leia um intervalo (deve-se ler o valor inferior e o valor superior do

    intervalo) e um nmero. O programa deve dizer se o nmero lido est dentro ou fora do intervaloinformado.

    15. Codifique um programa que leia dois nmeros e os imprima em ordem decrescente.16. Codifique um programa que leia trs nmeros e imprima o maior deles.17. Codifique um programa que leia trs nmeros e os imprima em ordem crescente.18. Codifique um programa que, dados dois valores inteiros entre 1 e 10, calcule e imprima: a mdia dos nmeros, caso a soma deles seja menor que 8; o produto entre os nmeros, caso a soma deles seja igual a 8; a diviso do maior nmero pelo menor, caso a soma deles seja maior que 8.

    5 Desvios Condicionais: switch19. Codifique um programa que leia um caractere de operao aritmtica (+, , , /), dois nmeros e

    exiba na tela a operao, seguida do seu resultado.20. Codifique um programa que leia um nmero de 1 a 12, indicativo um ms, e imprima o nomedo ms

    correspondente, por extenso.21. Codifique um programa que pergunte um cdigo de funcionrio e, de acordo com o valor digitado,

    apresente o cargo correspondente, segundo a tabela abaixo. Caso seja digitado um cdigo que noesteja na tabela, deve-se avisar que o cdigo invlido.

    22. Codifique um programa que leia a nota de um aluno e exiba o conceito correspondente, segundo asseguintes regras: As notas 10 e 9 equivalem ao conceito A; As notas 8 e 7 equivalem ao conceito B; As notas 6 e 5 equivalem ao conceito C; Notas abaixo de 5 equivalem ao conceito D.

    3

  • Cdigo Cargo101 Vendedor102 Atendente103 Auxiliar Tcnico104 Assistente105 Coordenador de Grupo106 Gerente

    23. Codifique um programa que leia um caractere (C, c, F ou f) indicando a unidade de medida datemperatura de entrada e uma temperatura de entrada. O programa deve realizar a converso datemperatura inserida, da unidade de entrada para a outra unidade dispnvel, utilizando a seguintefrmula de Converso: C = (5/9) (F 32). A sada do programa deve exigir a temperatura apsconverso, com 2 casas decimais, e a unidade da temperatura aps converso.

    6 Estruturas de Repetio24. Codifique um programa que leia 10 valores, conte quantos destes valores so negativos e imprima

    esta informao.25. Escreva um programa que leia 6 valores e encontre o maior e o menor deles. Mostre o resultado.26. Faa um programa que l um valor N inteiro e positivo e que calcula e escreve o fatorial de N (N!).27. A prefeitura de uma cidade fez uma pesquisa entre seus habitantes, coletando dados sobre o salrio

    e nmero de filhos. A prefeitura deseja saber: mdia do salrio da populao; mdia do nmero de filhos; maior salrio; percentual de pessoas com salrio at R$100,00;O final da leitura de dados se dar com a entrada de um salrio negativo.

    28. Escrever um programa que leia um nmero inteiro n e calcule a tabuada de n. Mostre a tabuada naforma:

    1 n = __2 n = __. . .

    n n = __

    29. Escrever um programa que leia um nmero no determinado de valores e calcule a mdia aritmticados valores lidos, a quantidade de valores positivos, a quantidade de valores negativos e o percentualde valores negativos e positivos. Mostre os resultados. O nmero que encerrar a leitura ser zero.

    30. Faa um programa que leia uma quantidade no determinada de nmeros positivos. Calcule aquantidade de nmeros pares e mpares, a mdia de valores pares e a mdia geral dos nmeros lidos.O nmero que encerrar a leitura ser zero.

    31. Escrever um programa que l 10 valores, um de cada vez, e conte quantos deles esto no intervalo[10,20] e quantos deles esto fora do intervalo, escrevendo estas informaes.

    4

  • 32. Escrever um programa que gere e escreva os 4 primeiros nmeros perfeitos. Um nmero perfeito aquele que igual a soma dos seus divisores exceto o prprio nmero. (Ex.: 6 = 1 + 2 + 3; 28 =1+2+4+7+14 etc).

    33. Elabore um programa em C para calcular a raiz quadrada de um nmero positivo, usando o roteiroabaixo, baseado no mtodo de aproximaes sucessivas de Newton. O programa dever prover 25aproximaes.Seja Y o nmero do qual se deseja a raiz quadrada. Obtemos: a primeira aproximao para a raiz quadrada de Y por X1 = Y2 ; as demais aproximaes para a raiz quadrada de Y por Xn+1 = X2n+Y2Xn

    7 Funes34. Codifique uma funo que receba por parmetro a idade de uma pessoa, expressa em anos, meses e

    dias, e retorne essa idade expressa em dias. Desconsidere anos bissextos.35. Codifique uma funo que receba a mdia final de um aluno passado por parmetro e retorne o seu

    conceito (atravs de uma varivel char), conforme a Tabela 1:

    Nota ConceitoDe 0 a 49 DDe 50 a 69 CDe 70 a 89 BDe 90 a 100 A

    Tabela 1:

    36. Codifique uma funo com a assinatura int contaimpar(int n1, int n2) que retorne o nmero deinteiros impares que existem entre n1 e n2 (inclusive ambos, se for o caso). Caso o valor de n2 sejamenor que o de n1, a funo deve tratar o invervalo como sendo de n2 at n1 sem que o invocadorda funo perceba.

    Ex :n = contaimpar (10 ,19) ; / n recebe 5 ( r e f e r e n t e a : 11 ,13 ,15 ,17 ,19) /n = contaimpar ( 5 , 1 ) ; / n recebe 3 ( r e f e r e n t e a : 1 ,3 , 5 ) /

    37. Codifique uma funo com a assinatura void estacao(int dia, int mes) que exiba no vdeo qual aestao do ano correspondente data passada por parmetro. Lembre-se que a primavera comeaem 23 de setembro, o vero em 21 de dezembro, o outono em 21 de maro e o inverno em 21 dejunho.Ex:estacao (25 ,10) ; / Deve imprimir a mensagem : 25/10 e primavera . /estacao (29 ,12) ; / Deve imprimir a mensagem : 29/12 e verao . /

    38. Codifique uma funo com a assinatura int somaintervalo(int n1, int n2) que retorne a soma dosnmeros inteiros que existem no intervalo fechado entre n1 e n2 (ou seja, incluindo n1 e n2). Casoo valor de n2 seja menor que o de n1, a funo deve tratar o invervalo como sendo de n2 at n1 semque o invocador da funo perceba.Ex:

    5

  • n=somaintervalo (3 , 6) ; / n recebe 18 ( r e f e r e n t e a : 3 + 4 + 5 + 6) /n=somaintervalo ( 5 , 5 ) ; / n recebe 5 ( r e f e r e n t e a : 5) /n=somaintervalo (2 ,3) ; / n recebe 3 ( r e f e r e n t e a : 2 + 1 + 0 + 1 + 2

    + 3) /n=somaintervalo (4 , 0) ; / n recebe 10 ( r e f e r e n t e a : 4 + 3 + 2 + 1 + 0)

    /39. Codifique uma funo com a assinatura int multiplica_intervalo(int n1, int n2) que retorne o

    produto dos nmeros inteiros que existem no intervalo fechado entre n1 e n2 (ou seja, incluindo n1e n2), excluindo-se o nmero 0, caso esteja no intervalo. Caso o valor de n2 seja menor que o de n1,a funo deve tratar o invervalo como sendo de n2 at n1 sem que o invocador da funo perceba.Ex:n=multiplica_intervalo (3 , 6) ; / n recebe 360 ( r e f e r e n t e a : 3 4 5

    6) /n=multiplica_intervalo ( 5 , 5 ) ; / n recebe 5 ( r e f e r e n t e a : 5) /n=multiplica_intervalo (2 ,3) ; / n recebe 12 ( r e f e r e n t e a : 2 1 1

    2 3) /40. Codifique uma funo que receba um nmero inteiro n passado por parmetro e devolve o primeiro

    nmero da srie de fibonacci que maior ou igual a n.41. Para o programa a seguir:

    1 #inc lude 2

    3 i n t soma1 ( i n t q , i n t c ) ;4 i n t soma2 ( i n t ra ) ;5

    6 i n t i = 10 ;7 i n t j = 20 ;8

    9 i n t main ( ) {10 i n t i , k , ra , p ;11

    12 p = 10 ;13 ra = 5 ;14

    15 f o r (i = 0 ; i< 3 ; i++){16 k = soma1 (ra , p ) ;17 ra = soma2 (k ) ;18 printf ( "%d , %d\n " ,ra , k ) ;19 }20

    21 r e turn 0 ;22 }23

    24 i n t soma1 ( i n t q , i n t c ) {25 i n t soma = q+i+c ;26 r e turn soma ;

    6

  • 27 }28

    29 i n t soma2 ( i n t ra ) {30 i n t k = j ;31 ra = ra + k ;32 r e turn ra ;33 }

    a) Determine quais so as variveis locais e globais deste programa, identificando a que funopertence cada varivel local.

    b) Mostre o que ser impresso na tela do computador quando for executado este programa.

    7