CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013

Slides:



Advertisements
Apresentações semelhantes
INTRODUÇÃO A COMPUTAÇÃO ENG. CIVIL
Advertisements

CES-10 INTRODUÇÃO À COMPUTAÇÃO
Estruturas de Repetição
Introdução à Computação - Jorge Macêdo
Aula 1 Tipo Abstrato de Dados
Automato de Pilha.
Estrutura de Repetição
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo II Confecção de Tabelas.
LINGUAGEM C Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Professor: Lafayette B. Melo.
Laboratório de Programação de Computadores II 2S/2009.
Laboratório de Programação de Computadores II Aula 1 2S/2009.
Cronograma de SCII - 2o. Ano de STPD - Profs. Fátima e Paulo
Linguagem C Funções.
Estruturas de Repetição
Estruturas de Decisão Permitir testes para decidir acções alternativas: if if - else switch (?:) Operador Condicional MF.
Funções Pré-definidas
7 - Funções pré-definidas
Aula 7 Instrução de iteração while. 2003/2004 Introdução à Programação 2 passo [G][G] [¬G][¬G] Início da actividade Fim da actividade Actividade Transição.
Estruturas de Repetição While
Polinômios e fatoração
Prof. Roberto Cristóvão
Introdução a Computação e Cálculo Numérico
Introdução a Computação e Cálculo Numérico
Aula prática 4 Laços Monitoria de Introdução à Programação
Introdução à Programação Estruturas de Repetição
Informática e Computação Estrutura de Repetição aula 13
Aula 07.
PROGRAMAÇÃO ESTRUTURADA II
Linguagem de Programação II
PROGRAMAÇÃO I UNIDADE 4.
Programação II Estruturas de Dados Aula 02 - continuação
Racionalização O que é racionalizar um número?
Introdução à Programação de Computadores
Amintas engenharia.
Aula 6 - Estruturas de Controle
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014
CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo X Metodologia Top-down com Subprogramação.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014
INTRODUÇÃO.
Prof.: Edson Holanda Teoria da computação
PROGRAMAÇÃO ou LINGUAGEM C?
Capítulo IV – Comandos de Controle de Fluxo 4.1 – Comandos compostos 4.2 – Comandos condicionais 4.3 – Expressões condicionais 4.4 – Comandos repetitivos.
Declarando e Chamando Funções
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo IV Comandos de Controle de Fluxo.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo VI Desenhos e Animação.
Algoritmos Comandos de repetição.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo VII Variáveis Indexadas Numéricas.
Estruturas de Controlo Repetitivas
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo I Comandos Simples e Repetições.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo I Comandos Simples e Repetições.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo.
Ciclos for, while e do...while
Comando de Seleção switch
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle.
Aula Prática 2 Monitoria IP/CC (~if669).
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo IX Subprogramação e Recursividade.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 09) Prof. Alessandro Bernardo.
Introdução à Programação Aula Prática 2 Operadores e Comandos Condicionais Monitoria
Introdução a Programação
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo X Encadeamento de Estruturas por Ponteiros.
Alô, mundo!. Vamos ao Dev C++ discutir os seguintes tópicos: – case sensitive – edentação – define – \n, \t, \a – tipos basicos: int, float, char – printf,
Sistemas de Controle III N8SC3
Algoritmos Aula 5 Estrutura de Decisão e Repetição. Prof. Luiz
Estrutura de Repetição
Fundamentos de Programação 1 Slides 7 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Funções”
Grupos de Slides No 5. Prof. SIMÃO
Algoritmos Grupos de Slides No 7. Prof. SIMÃO Estrutura de Repetição “para - passo”” for Feito por Prof. Jean Marcelo SIMÃO e revisado por Prof. Luis Alberto.
Transcrição da apresentação:

CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo V Comandos For e Switch-Case

Outro comando repetitivo: for Sejam os seguintes comandos: int n, i, num, soma; scanf (“%d”, &n); soma = 0; i = 1; while (i <= n) { scanf (“%d”, &num); soma += num; i++; } Eles podem ser escritos usando-se o comando for: scanf (“%d”, &n); soma = 0; for (i = 1; i <= n; i++) { scanf (“%d”, &num); soma += num; } ou: scanf (“%d”, &n); for (soma = 0, i = 1; i <= n; i++) { soma += num; equivale a soma = soma + num; i++; equivale a i = i + 1; Ou outras formas

Forma geral do comando for: for ( Inicializações ; Expressão ; Atualizações ) Comando Inicializações e Atualizações: Listas de zero ou mais CmdAtribuição’s, CmdEntrada’s, CmdSaída’s ou ChamadaFunção’s Separados por vírgula e não por ponto e vírgula O CmdFor acima equivale a Inicializações while ( Expressão ) { Comando Atualizações }

Fluxograma do comando for: for ( Inicializações ; Expressão ; Atualizações ) Comando

Programa 5.1: Números perfeitos #include <stdio.h> #include <conio.h> void main () { int n, i, div, soma; printf ("Digite um numero inteiro positivo: "); scanf ("%d", &n); printf ("\nNumeros perfeitos entre 1 e %d:\n\n", n); i = 1; while (i <= n) { soma = 0; div = 1; while (div*2 <= i) { if (i % div == 0) soma += div; div++; } if (soma == i) printf ("%12d", i); i++; printf ("\n\nDigite algo para encerrar: "); getch (); Programa 5.1: Números perfeitos Número perfeito: a soma de seus divisores próprios é igual a si mesmo. Exemplos: 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 Usar comando for ao invés de while Salvar e executar

Comando condicional de várias alternativas: Expressão Lista de comandos V11, V12, ... , V1i V21, V22, ... , V2j Vn1, Vn2, ... , Vnp Outros

Programa 5.2: Levantar o astral #include <stdio.h> #include <conio.h> void main ( ) { char c; int n; printf ("Levantar o astral? (s/n): "); c = getche(); while (c == 's' || c == 'S') { printf ("\n\n\tDigite um numero de 1 a 7: "); scanf ("%d", &n); switch (n) { case 1: printf ("\n\tVoce eh inteligente"); break; case 2: printf ("\n\tVoce eh campeao"); break; case 3: printf ("\n\tVoce estah com tudo"); break; case 4: printf ("\n\tSeu destino eh vencer"); break; case 5: printf ("\n\tTudo coopera para seu sucesso"); break; case 6: printf ("\n\tA vida sorri para voce"); break; case 7: printf ("\n\tNada pode impedir sua vitoria"); break; default: printf ("\n\tO numero deve ser de 1 a 7"); } printf ("\n\nLevantar o astral? (s/n): "); c = getche (); Programa 5.2: Levantar o astral Salvar e executar Eliminar alguns ou todos os break’s e executar Trocar o esquema while por for

Exercício 5.1: Resolução de 3 problemas matemáticos Escrever um programa amigável em C para resolver os três seguintes problemas matemáticos escolhidos perante um menu de problemas: Cálculo da média aritmética ponderada de vários números reais Cálculo da soma dos termos de uma progressão aritmética de números reais Cálculo do fatorial de um número inteiro A escolha do problema deve usar o comando switch-case

Soma da progressão aritmética: Para cada problema a ser resolvido, o programa deve pedir dados específicos para o operador Media ponderada: Pedir o número de elementos n a participarem da média (n > 0) Pedir cada elemento acompanhado de seu peso (os elementos devem ser reais mas os pesos devem ser inteiros positivos) Soma da progressão aritmética: Pedir o primeiro termo (tipo real), o número de termos (tipo inteiro) e a razão (tipo real) Não usar a fórmula da soma Fatorial: Pedir o número do qual se deseja o fatorial (deve ser inteiro e  0 e < 13) Usar o comando for sempre que puder O programa deve insistir para o operador digitar os dados corretamente A seguir, sugestão para saída de resultados

Em amarelo a digitação do operador SOLUCAO DE PROBLEMAS MATEMATICOS Resolver problema? (s/n): s Escolha o problema; Digite 1 - para Media aritmetica ponderada 2 - para Soma de PA 3 - para Fatorial Sua opcao: 1 Media Aritmetica Ponderada Digite o numero de elementos (>0): 0 Numero nao positivo! Digite novamente: 3 Digite o 1o. elemento e seu peso: 3.4 4 Digite o 2o. elemento e seu peso: 5.2 4 Digite o 3o. elemento e seu peso: 9.1 2 Media ponderada = 5.26 Em amarelo a digitação do operador

Resolver problema? (s/n): s Escolha o problema; Digite 1 - para Media aritmetica ponderada 2 - para Soma de PA 3 - para Fatorial Sua opcao: 2 Soma de uma Progressao Aritmetica Digite o primeiro termo, o numero de termos e a razao: 3.5 5 2.3 Soma PA = 40.5

Completar o programa a seguir Resolver problema? (s/n): s Escolha o problema; Digite 1 - para Media aritmetica ponderada 2 - para Soma de PA 3 - para Fatorial Sua opcao: 3 Fatorial de um numero Digite o numero (>=0): -1 Numero negativo! Digite novamente: 7 Fatorial(7) = 5040 Resolver problema? (s/n): n Digite algo para encerrar: Completar o programa a seguir

#include <stdio.h> #include <conio.h> void main () { char c; int problema, nelem, npa, nfat, fat, - - - - - ; float mediapond, a1, razao, somapa - - - - - ; - - - - - printf ("SOLUCAO DE PROBLEMAS MATEMATICOS"); printf ("\n\nResolver problema? (s/n): "); c = getche (); while (c == 's' || c == 'S') { printf ("\n\nEscolha o problema; Digite"); printf ("\n\n\t1 - para Media aritmetica ponderada"); printf ("\n\t2 - para Soma de PA"); printf ("\n\t3 - para Fatorial"); printf ("\n\nSua opcao: "); scanf ("%d", &problema);

switch (problema) { case 1: printf ("\n\nMedia Aritmetica Ponderada"); printf ("\n\n\tDigite o numero de elementos (>0): "); scanf ("%d", &nelem); while (nelem <= 0) { - - - - - } - - - - - // digitacao dos elementos e seus pesos - - - - - // calculo da media ponderada (mediapond) printf ("\n\tMedia ponderada = %g", mediapond); break; case 2: printf ("\n\nSoma de uma Progressao Aritmetica"); printf ("\n\n\tDigite o primeiro termo, o numero de termos e a razao: "); scanf ("%f%d%f", &a1, &npa, &razao); - - - - - // calculo da soma da PA (somapa) printf ("\n\tSoma PA = %g", somapa);

Substituir todos os comandos while por for case 3: printf ("\n\nFatorial de um numero"); printf ("\n\n\tDigite o numero (>=0): "); scanf ("%d", &nfat); while (nfat < 0 || nfat >= 13) { - - - - - } - - - - - // calculo do fatorial (fat) printf ("\n\tFatorial(%d) = %d", nfat, fat); break; default: printf ("\n\nErro na opcao\nDigite novamente:"); } // final do switch printf ("\n\nResolver problema? (s/n): "); c = getche (); } // final do while printf ("\n\nDigite algo para encerrar: "); getch (); } // final do programa Substituir todos os comandos while por for

Exercício do Lab 5: Resolução de vários problemas matemáticos Acrescentar ao programa anterior a opção de resolver os seguintes problemas: Cálculo de ex por série de MacLaurin Cálculo de sin(x), por série de MacLaurin (x em graus) Cálculo de cos(x), por série de MacLaurin (x em graus) Cálculo de logbx, usando a função log (logaritmo neperiano) do math.h Cálculo de RaizQuadrada(x) sem usar a função sqrt do math.h

Série de MacLaurin para ex: Ou seja, Cada novo termo deve ser acrescentado à somatória enquanto ele não for igual a zero Cada novo termo da somatória pode ser calculado em função do termo anterior Usar o comando for para calcular a somatória

Séries de MacLaurin para sin(x) e cos(x) com x em radianos: Ou seja, Cada novo termo deve ser acrescentado à somatória enquanto ele não for igual a zero Cada novo termo da somatória pode ser calculado em função do termo anterior O ângulo deve ser digitado em graus e convertido para radianos Usar o comando for para calcular a somatória

Cálculo de logbx: Sabe-se que logbx = logex / logeb O arquivo math.h tem a declaração da função log(y) que calcula logey É só usar essa função

Cálculo da raiz quadrada de x sem usar a função sqrt: Estipula-se uma precisão (por exemplo, 0.000001) Dá-se um chute inicial para a raiz (por exemplo, 1) Enquanto o chute estiver fora da precisão (por exemplo, |chute2 - x| > 0.000001) calcular um novo chute usando a seguinte fórmula: NovoChute = (ChuteAnterior + x/ChuteAnterior) / 2 Ver exemplo a seguir

x = 72 sqrt = 1.00000000; |sqrt^2 - x| = 71.00000000 sqrt = 1.00000000 + 72 / 1.00000000 = 36.50000000; |sqrt^2 - x| = 1260.25000000 sqrt = 36.50000000 + 72 / 36.50000000 = 19.23630137; |sqrt^2 - x| = 298.03529039 sqrt = 19.23630137 + 72 / 19.23630137 = 11.48961232; |sqrt^2 - x| = 60.01119125 sqrt = 11.48961232 + 72 / 11.48961232 = 8.87807115; |sqrt^2 - x| = 6.82014729 sqrt = 8.87807115 + 72 / 8.87807115 = 8.49397041; |sqrt^2 - x| = 0.14753337 sqrt = 8.49397041 + 72 / 8.49397041 = 8.48528582; |sqrt^2 - x| = 0.00007542 sqrt = 8.48528582 + 72 / 8.48528582 = 8.48528137; |sqrt^2 - x| = 0.00000000 Raiz Quadrada (72) = 8.48528137 Usar o comando for para as repetições