LISTA DE EXERCÍCIOS - ro. 02

Documentos relacionados
UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

LISTA DE EXERCÍCIOS - ro. 04

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Universidade Federal de Rondônia Técnicas de Desenvolvimento de Programas Lista 4

LISTA DE EXERCÍCIOS - ro. 05

1 Cada linha do triângulo é uma seqüência de fibonacci.

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

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

USP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

USP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

69) Acrescentar uma mensagem de VALOR INVÁLIDO no exercício [68], caso o segundo valor informado seja ZERO.

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

Exercícios Repetição

Computação Eletrônica. Strings. Prof: Luciano Barbosa. CIn.ufpe.br

USP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

1ª Lista de Exercícios

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo

Aula 2 Comandos de Decisão

Aula 14: Repetição (Parte 2)

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

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

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

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

Introdução a Linguagem C (Parte I) UFPA Sistemas de Informação. Roberto Araujo 2013

Linguagem de Programação C

Estruturas de Repetição WHILE e DO- WHILE

SSC 0301 IC para Engenharia Ambiental

Aula 5 ESTRUTURAS DE REPETIÇÃO (WHILE)

Programação de Computadores 1 Lista 2. Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP

LISTA DE EXERCÍCIOS MÊS 03

Programação Básica. Estrutura de um algoritmo

Linguagem C estruturas de repetição

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

Estruturas de Repetição

Linguagem C (estruturas condicionais)

Estruturas de Repetição

MC102 Algoritmos e Programação de Computadores

ESTRUTURAS COMPOSTAS VETOR

Apêndice B. Cadeias de Caracteres (Strings)

Estruturas de Repetição

Computação eletrônica: Estruturas de repetição

Variáveis, Tipos de Dados e Operadores

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

Fundamentos de Programação 1

ESTRUTURAS COMPOSTAS

CADERNO DE EXERCÍCIOS ALGORITMOS

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

ESTRUTURAS COMPOSTAS. Variáveis Compostas Unidimensionais VETOR. Baseado nos slides de Rosely Sanches e Simone Senger de Souza

Aula 16: Laços aninhados e desvios

Entrada de Dados na Linguagem C. Professor Adolfo Neto DAINF UTFPR Agosto de 2008

LÓGICA DE PROGRAMAÇÃO. Resumo da Linguagem C. Sérgio Carlos Portari Júnior

Exercícios: Comandos de Repetição

Laços. - receba o dinheiro - Pergunte qual refrigerante o cliente deseja - forneça o refrigerante - devolva o troco

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

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

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

Série de Exercícios - Comandos Repetitivos 1. Codificar o algoritmo para imprimir os N primeiros números naturais pares.

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

Estruturas de Repetição. for() while() do-while() break; continue;

Programação: Vetores

DURAÇÃO DA PROVA: 2 horas

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

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

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Linguagem C (repetição)

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

SSC 0301 IC para Engenharia Ambiental

Linguagem C Estruturas de Repetição

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Computação eletrônica: Operadores, expressões e funções

Aula 03 - Linguagem C

Fundamentos de programação

Aula 11: Laços e exercícios

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

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

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

USP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Introdução à Programação

Sistemas Operacionais e Introdução à Programação. Introdução à Lógica de Programação: estruturas de repetição

Campus Experimental de Sorocaba

3ª Lista de Exercícios de Programação I

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

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

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

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

SSC Introdução à Programação para Engenharias. Lista 01 Entrega em 06/04/ h10

Métodos Computacionais. Strings (Vetor de Caracteres)

Algoritmos e Programação

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

BAC004 Informática Teórica T2 Professora: Fabiana Costa Guedes Lista 05 Vetores e Matrizes Vetores

Para começar... Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Comando REPITA (repeat) Comando REPITA (repeat)

Linguagem de Programação

MAC2166 Introdução à Computação para Engenharia Escola Politécnica Primeira Prova 07 de abril de 2008

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Transcrição:

USP ICMC SSC SSC0100 - Introdução à Ciência da Computação I (Prática) Professor responsável: Fernando Santos Osório Semestre: 2009/1 Horário: Terça 14h20 (Turma A2) E-mail: fosorio.at. icmc.usp.br fosorio.at. gmail.com Web: http://www.icmc.usp.br/~fosorio / LISTA DE EXERCÍCIOS - ro. 02 [Laços - Comando For, While, Do-While] [While] 1. Faça um comando While equivalente ao descrito abaixo (que realize o mesmo tipo de procedimento e obtenha o mesmo resultado), mas sem utilizar o operador relacional OU ( ). Você pode usar outros operadores lógicos ou relacionais, exceto o OU (Or). While ( Nota < 0.0 ) ( Nota > 10.0 ) Do scanf( %lf, &Nota); 2. Faça um programa que leia dois números inteiros, o primeiro é o valor inicial de um contador, e o segundo é o valor final do contador (testar se o valor inicial fornecido é inferior ao valor final). Usando o comando While, escreva na tela uma contagem que comece no primeiro número lido, escreva os números seguintes colocando sempre apenas um número em cada nova linha da tela, e terminando a contagem quando chegar ao valor final indicado. 3. Ler o nome de um aluno e as suas duas notas A e B, e após calcular a média ponderada entre estas notas (A tem peso 1 e B tem peso 2). Verifique se a nota digitada é valida, caso seja inválida, repita a leitura. Repetir este procedimento para uma turma composta por cinco alunos, usando o comando While. Exemplo de tela de saída: Entre com o nome do aluno: Fulano da Silva Entre com o nome do aluno: Ciclano da Silva Entre com o grau A: 12.5 Nota invalida! Entre com o grau A: 2.5 4. Baseado no programa anterior, faça um novo programa de maneira que possamos trabalhar com turmas compostas por um número variável de alunos. Após calcular e exibir a média de um aluno, exibir uma mensagem perguntando ao usuário se existem mais alunos (resposta: sim / nao). Se tiver mais alunos, continuar o procedimento de leitura das notas e o cálculo da média até que o usuário responda não. Usar o comando While e gerar uma saída conforme o exemplo de tela de saída abaixo: Observação: Para comparar duas strings use a função strcmp (string compare).

Entre com o nome do aluno: Fulano da Silva Continuar (sim/nao)? sim 5. Baseado no programa anterior, faça um novo programa de maneira a validar as notas fornecidas pelo usuário (notas devem ser valores positivos entre 0.0 e 10.0). Indicar ao usuário se a nota fornecida é inválida e pedir para fornecer uma nova nota, repetindo este processo até que o usuário informe uma nota correta. Usar um laço While na leitura das nota, e gerar uma saída conforme o exemplo de tela de saída abaixo: Entre com o nome do aluno: Fulano da Silva Entre com o grau A: 15.3 ERRO: Nota invalida! Digite novamente a nota. Continuar (sim/nao)? nao 6. Fazer um programa que calcule e exiba na tela o fatorial de um número fornecido pelo usuário, usando o comando While. Repetir a execução do programa tantas vezes quantas o usuário quiser. Lembre-se que o resultado do cálculo de um fatorial pode ser um número grande (Exemplo: Fatorial de 8 = 40320). Exemplo de tela de saída: Entre com um numero: 5 O fatorial de 5 eh 120 Outro numero (sim/nao)? nao 7. Escrever um programa que calcule todos os números inteiros divisíveis por um certo valor indicado pelo usuário, e compreendidos em um intervalo também especificado pelo usuário. O usuário deve entrar com um primeiro valor correspondente ao divisor e após ele vai fornecer o valor inicial do intervalo, seguido do valor final deste intervalo. Usar o comando While. Exemplo de tela de saída: Entre com o valor do divisor: 3 Início do intervalo: 17 Final do intervalo: 29 Numeros divisiveis por 3 no intervalo de 17 a 29: 18 21 24 27 8. Faça um programa para o jogo de adivinhar um número. O computador deve sortear um número entre 0 e 100 e pedir para o usuário tentar adivinhar este número. O usuário vai dizer o seu palpite, e o computador deve responder, se ele é maior ou menor que o número que ele sorteou. O programa termina somente quando o usuário acertar exatamente qual o número que o computador tinha sorteado, escrevendo uma mensagem de felicitações para o nosso usuário e indicando o número total de tentativas feitas. Dica: para gerar um número qualquer entre 0 e 100, use um comando como o deste exemplo indicado logo a seguir. Exemplo: #include <stdlib.h> /* Rand: gera um número entra 0 e RAND_MAX, retorna um int */ numero_sorteado = rand () % 100; { 0 <= numero_sorteado < 100 }

Adivinhe o numero sorteado: Entre com um nro.: 35 Errou! O numero eh maior que 35 Entre com um nro.: 52 Errou! O numero eh menor que 52 Entre com um nro.: 43 BRAVO, voce acertou! 9. Faça um programa para o jogo de adivinhar um número, mas invertendo os papéis desta vez. O computador que vai tentar adivinhar um número escolhido pelo usuário. O usuário deve escolher um número e para cada número apresentado pelo computador, responder se ele acertou, ou se o número apresentado é maior que o escolhido, ou se ele é menor que o escolhido. O programa termina quando o usuário responder que o computador acertou. 10. Faça um programa que obtenha e exiba na tela todos os números primos de 1 até 150. Os números primos são aqueles que só são divisíveis por 1 e por eles mesmos (exemplo: 1, 3, 5, 7, ). [Do-While] 11. Faça um comando Do-While equivalente ao descrito abaixo (que realize o mesmo tipo de procedimento e obtenha o mesmo resultado), mas sem utilizar o operador relacional E (&&). Você pode usar outros operadores lógicos ou relacionais, exceto o E (And). do scanf( %lf, &Nota); while (! ( Nota >= 0.0 ) && ( Nota <= 10.0 ) ) ; 12. Faça um programa que leia dois números inteiros, o primeiro é o valor inicial de um contador, e o segundo é o valor final do contador (testar se o valor inicial fornecido é inferior ao valor final). Usando o comando Do-While, escreva na tela uma contagem que comece no primeiro número lido, escreva os números seguintes colocando sempre apenas um número em cada nova linha da tela, e terminando a contagem quando chegar ao valor final indicado. 13. Apresentar na tela a tabuada de multiplicação dos números de 1 até 10. O programa deve exibir o resultado das multiplicações de 1x1, 1x2, até 1x10, pedir para o usuário pressionar uma tecla, e recomeçar com 2x1, 2x2, até 2x10, pedir novamente para teclar algo e seguir assim sucessivamente até chegar em 10x10. Use o comando Do-While. 14. Fazer um programa que leia o número total de bits usados para representar um valor, e exiba em seguida o maior valor inteiro e sem sinal que podemos representar com este número de bits. Lembre-se que um número binário com 8 bits pode representar valores entre 0 e 255 = 2 N-1 (2 na potência 8, menos 1 = 2*2*2*2*2*2*2*2-1 = 255). Use o comando Do-While para calcular o valor de 2 N 15. Faça um programa para ler 10 valores reais, armazenando estes valores em uma tabela (vetor). Exibir na tela a média simples dos 10 valores lidos. Faça uma primeira versão deste programa usando apenas comandos While (faça um laço de leitura de dados e um outro laço para o cálculo da média). Faça uma segunda versão deste programa usando apenas comandos Do-While. Exemplo de tela de saída: Digite 10 valores: Valor 1: 8.2 Valor 2: 5.7 Valor 3: 6.3 Valor 4: 3.2 Valor 5: 9.4 Valor 6: 8.2 Valor 7: 5.7 Valor 8: 6.3 Valor 9: 3.2 Valor 10: 9.4 Media dos Valores: 6.56

[For] 16. Faça um programa de contagem regressiva. Cada vez que o usuário apertar uma tecla você deve passar para o próximo número. Faça o programa usando o commando For, e fazendo uma contagem de 10 até chegar em 0. Para esperar que o usuário aperte uma tecla, use a função getch ou system conforme o exemplo abaixo: #include <conio.h> getch(); /* Espera que seja pressionada uma tecla */ #include <stdlib.h> system("pause"); /* Executa a rotina do sistema operacional (DOS) que espera uma tecla */ 17. Altere o programa anterior, trocando a pausa esperando por uma tecla pelo comando delay e faça uma verdadeira contagem regressiva de 1 em 1 segundo. O comando delay pode ser usado da seguinte forma: #include <unistd.h> sleep(1); /* Sleep: parada contada em segundos */ 18. Faça um programa que leia dois números, o primeiro é o valor inicial de um contador, e o segundo é o valor final do contador (verifique se o valor inicial fornecido é inferior ao valor final). Usando o comando For, escreva na tela uma contagem que comece no primeiro número lido, escreva os números seguintes colocando apenas um número em cada nova linha da tela, até chegar ao valor final indicado. Entre com o Valor Inicial: 11 Entre com o Valor Final: 13 Contagem: 11 12 13 Final da contagem 19. Faça um programa que escreva na tela os números pares entre 0 e 50, usando um comando For. Não utilize nenhum IF/THEN neste programa, apenas o comando FOR. 20. Re-escreva o programa com o comando For que é dado abaixo, usando primeiramente um comando do tipo While, e depois re-escreva novamente o mesmo comando usando um comando Do-While. Os dois programas que forem usar o While e o Do-While devem se comportar de maneira idêntica ao programa que usava o For. #include <stdio.h> #include <conio.h> main() { int cont; } for (cont=10; cont <=20; cont++) printf ( Contador = %.2lf\n, (cont /10.0-1.0)); getch(); 21. Ler o nome de um aluno e suas duas notas A e B, e após calcular a média ponderada entre estas notas (A tem 30% do peso do grau final e B tem 70% do peso). Repetir este procedimento para uma turma composta por cinco alunos, usando o comando For. Exemplo de tela de saída:

Entre com o nome do aluno: Fulano da Silva O aluno Fulano da Silva tem uma media:5.7 22. Fazer um programa que calcule e exiba na tela o fatorial de um número fornecido pelo usuário, usando o comando For. Perguntar ao usuário se ele deseja calcular o fatorial de outro número e repetir a execução do programa tantas vezes quantas o usuário indicar. Exemplo de tela de saída: Entre com um número: 5 O fatorial de 5 eh 120 Outro número (sim/nao)? nao 23. Ler um número e gerar todos os números primos entre 1 e o número fornecido, escrevendo na tela o resultado. Usar o comando For. Procure fazer uma nova versão otimizada deste programa, de modo que o cálculo seja realizado de forma mais rápida (evite fazer testes/cálculos desnecessários) usar qualquer tipo de comando. Entre com o valor final: 10 1 eh primo 2 eh primo 3 eh primo 5 eh primo 7 eh primo Fim! 24. Fazer um programa que leia uma string e converta todos os caracteres desta string para maiúsculo. Considerar também nesta conversão os caracteres especiais e caracteres acentuados: á, é, í, ó, ú, ç, ã,õ, à, â, ê, î, ô, û, ü. Depois de convertida a string, exibir o resultado na tela. Dica: uma string de caracteres é um vetor, terminado pelo caractere \0 (você pode fazer um laço para varrer a string do início ao fim). 25. Fazer um programa de criptografia (codificação de dados visando a privacidade de acesso as informações), onde dada uma string este programa codifique os dados através de um processo de substituição de letras. Você pode definir o seu próprio método de criptografia, desde que depois seja possível reverter este processo, ou seja, um código criptografado deve poder ser convertido novamente ao valor inicial). Fazer um outro programa complementar a este que deve ser capaz de descriptografar a string, ou seja, deve pegar uma string codificada e retornar ao texto original. CRIPTOGRAFAR Entre como texto a ser criptografado: LinguagemC Texto criptografado: MjohvbhfnD DESCRIPTOGRAFAR Entre como texto a ser descriptografado: MjohvbhfnD Texto descriptografado: LinguagemC FIM