7 Testes e Condições. Unesp Campus de Guaratinguetá

Documentos relacionados
12 - Dados Estruturados Vetores, Matrizes e Strings

Aula 05: Condicionais (if / else)

Aula 02 -Introdução àlinguagc Programação: Estrutura-Seleção. OPL e IC1 Prof: Anilton Joaquim da Silva

SSC 0301 IC para Engenharia Ambiental

ALGORITMO I ESTRUTURA DE CONTROLE DECISÃO SE / CASO;

Linguagem C (estruturas condicionais)

Comandos If-else. Unesp Campus de Guaratinguetá. Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro. 5.

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

Aula 4 Introdução ao C

Introdução à Programação I

ESTRUTURAS DE CONTROLE

Programação Estruturada

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

Linguagem C/C++ Estrutura Condicional. Prof: Rosemary Melo

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Exercício... Para começar... Resolução... Para começar... Para começar...

Tabela T1: Tags para comandos de impressão.

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

CCO 016 / COM 110 Fundamentos de Programação

MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais

Aula 2 Comandos de Decisão

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Aula 8 Comandos de Seleção

Comandos de decisão. Tiago Alves de Oliveira. Adaptado de slides das Profas. Patrícia Jaques, Mônica Py e Deise Sacol

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

Estruturas de Controle

Programação para Games I

3. Linguagem de Programação C

Fundamentos de Programação1

Aula 05 Estrutura de Seleção em C

Aula 12- Variáveis e valores reais

Estruturas de Decisão. Adaptado de Deise Saccol

INTRODUÇÃO À PROGRAMAÇÃO

LISTA DE EXERCÍCIOS: 1ª Unidade

A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado..

LINGUAGEM E TECNICAS DE PROGRAMAÇÃO

Modulo 3: Else, Case, For...

Algoritmos e Programação

5- A Lógica da Programação Comandos If-else

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

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

ACH5531 Introdução à Computação

Introdução à Computação

Aula 03 -Introdução àlinguagc Programação: Estrutura-Repetição. OPL e IC1 Prof: Anilton Joaquim da Silva

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

Estruturas de Controle de Fluxo

Lista de Exercícios Revisão de Lógica. 01. Desenvolva um programa em C que receba três valores numéricos inteiros e mostre a soma desses três números.

Primeira Lista de Exercícios

3 O Primeiro Programa em C. Unesp Campus de Guaratinguetá

Algoritmos e Técnicas de Programação

Introdução à Ciência da Computação SCC0120 Prof. Zhao Liang. Aula de Laboratório 1: Operadores, comandos básicos e comando IF 27/03/2012

Linguagem C: Introdução

Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante

Para começar... Para começar... Para começar... Para começar... Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Estruturas condicionais...

CCO 016 / COM 110 Fundamentos de Programação

Algoritmos e Programação - Engenharia da Computação -

Linguagem de Programação C

CCO 016 / COM 110 Fundamentos de Programação

Estrutura do programa

Variáveis, Tipos de Dados e Operadores

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

Estruturas de seleção

Computação I (MAB120) DCC/UFRJ

5 Operações e Funções Matemáticas. Unesp Campus de Guaratinguetá

Aula 5 ESTRUTURAS DE REPETIÇÃO (WHILE)

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

Disciplina de Algoritmos e Programação

Linguagem C. André Tavares da Silva.

Aula Teórica 03. Comandos Condicionais (Decisão)

Agenda. Programação estruturada. Sequência. Decisão: Desvio de fluxo INTRODUÇÃO. Expressões lógicas.

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

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Estruturas de Controle - Seleção. Prof. César Melo

Treinamento Olimpíada Brasileira de Informática

Introdução à Programação

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

Introdução à Programação. Expressões Booleanas e Comandos Condicionais

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

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

LISTA DE EXERCÍCIOS. 2) Explique a diferença entre algoritmo computacional e não computacional.

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

Introdução à Programação SCC-121

MC-102 Aula 06 Comandos Repetitivos

MC102 Algoritmos e Programação de Computadores

Lista de Exercícios II. 01. Desenvolva um programa em C que receba um valor numérico real, verifique e mostre se esse número é positivo.

Comandos de desvio de fluxo. Expressões lógicas.

Laboratório de 13 de maio de 2019

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

Sintática: como é escrito cada elemento da linguagem de programação.

Programação Estruturada

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO PRÉ AULA PRÉ AULA 18/09/ Considere o seguinte comando: if (partefracionada >= 0.5).

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

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

Introdução a Programação na Linguagem C.

Computação Informática

Quantas variáveis para armazenar as notas e as médias são necessárias para resolver este problema?

CCO 016 / COM 110 Fundamentos de Programação

5 Variáveis e Expressões. Unesp Campus de Guaratinguetá

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Profa Rosana Braga

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

Transcrição:

7 Testes e Condições Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante

7 Seleção de Ações Alternativas Suponha que temos duas variáveis numéricas, A e B, cujos valores são diferentes, e desejamos imprimir a maior delas. Neste caso utilizamos uma construção chamada Se_Então_Senão SIM A > B? NÃO escreva (A) escreva (B) Testes e Condições 2

7 Seleção de Ações Alternativas Em Linguagem Algorítmica a construção Se_Então_Senão tem o seguinte formato: Se condição então alternativa verdadeira senão alternativa falsa Exemplo: Se A > B então Escreva ( A ) senão Escreva ( B ) Testes e Condições 3

7 Seleção de Ações Alternativas Um conjunto especial de operadores relacionais é solicitado para expressar condições. São eles: Operador em Linguagem Algorítmica > < = Operador em Linguagem C > < == >= <=!= Significado maior do que menor do que igual a maior do que ou igual a menor do que ou igual a não igual ( diferente de ) Testes e Condições 4

7 Seleção de Ações Alternativas Exemplo 1: Fazer um algorítmo em que dadas as três notas individuais em três aspectos do ano escolar (Lab, Exame_inter, Exame_final) para um estudante chamado Nome. O algorítmo deve calcular a média final com pesos de 20%, 30% e 50%, respectivamente. O relatório de saída deve fornecer o nome do aluno, suas notas individuais,sua média final e uma mensagem caso o aluno esteja reprovado. A variável Média é real. Algoritmo Relatório Variáveis: Lab, Exame_inter, Exame_final, Média : reais Nome : cadeia de caractere Início 1. [Ler dados] Leia [Nome, Lab, Exame_inter, Exame_final] 2. [Calcular a média] Média 0.2 * Lab + 0.3 * Exame_inter + 0.5 * Exame_final Testes e Condições 5

7 Seleção de Ações Alternativas Exemplo 1: Continuação... 3. [Imprimir resultados] Escreva ( Nome estudante:, Nome) Escreva ( Nota Laboratório:`, Lab) Escreva ( Exame Intermediário:`, Exame_inter) Escreva ( Exame Final`, Exame_final) Escreva ( Média Final:`, Média) 4. [Verificar se tem aluno reprovado] Se Media < 5.0 então Escreva ( Reprovado`) Fim Testes e Condições 6

7 Seleção de Ações Alternativas Exemplo 2: Faça um algoritmo que leia dois valores, determine o maior deles e o imprima com uma mensagem de identificação. Assumir que todas as variáveis são inteiras. Algoritmo Mostre Variáveis: Valor1, Valor2, Max : inteiras Início 1. [Ler os valores] Leia ( Valor1, Valor2 ) 2. [Determinar o maior] Se Valor1 > Valor2 então Max Valor1 Escreva ( O Primeiro valor é maior`) senão Max Valor2 Escreva ( O Segundo Valor é maior`) 3. [Imprimir o maior valor] Escreva ( Maior Valor =`, Max) 4. [Terminar] Fim Testes e Condições 7

7.1 Diagrama de blocos - Fluxograma Como já foi dito anteriormente, antes de se fazer um programa, deve-se fazer um algoritmo de problema. Para tanto temos utilizado uma linguagem algorítmica que também chamamos de portugol. Uma outra maneira de se escrever algoritmos é através de fluxograma ou diagrama de bloco. No fluxograma, as ações a serem executadas são representadas de maneira gráfica. Embora a linguagem algorítmica seja mais utilizada, existem vários livros que utilizam o fluxograma para explicar partes do algoritmo, devido ao seu forte apelo visual A seguir mostramos rapidamente as ferramentas utilizadas para a Testes e Condições 8 confecção de um fluxograma.

7.1 Diagrama de blocos - Fluxograma Símbolo Inicio/Fim Leitura Cond Resultados Operacoes Descrição Delimita o início ou o final das instruções. Leitura de dados (através do teclado, pex). Avaliação de uma condição. Apresentação de resultados. Atribuição ou operação de processamento. Fluxo de execução. Conexão entre partes do algoritmo. Testes e Condições 9

7.1 Diagrama de blocos - Fluxograma Problema Maior Suponha duas variáveis numéricas, A e B, com valores diferentes, e deseja-se imprimir a maior delas. Algoritmo Maior Variaveis A, B; Inicio 1. Ler(A,B); 2. Se (A > B) entao imprimir A; Senao imprimir B; Fim Inicio Ler A,B; Se A>B V F Escreva(A); Escreva(B); Final Testes e Condições 10

7.2 Seleção de Ações Alternativas : Ses Encaixados 7.2 Seleção de Ações Alternativas : Ses Encaixados Em algumas aplicações, uma das alternativas de uma estrutura Se_Então_Senão pode envolver outras decisões Exemplo 3 : Faça um algoritmo que leia três números A, B e C e imprima o valor do maior. Assumir valores distintos e reais. Algorítmo Max_3 Variáveis A, B, C, Max : reais Início 1. [Ler dados] Leia (A, B, C) Testes e Condições 11

7.2 Seleção de Ações Alternativas : Ses Encaixados Exemplo 3: Continuação... 2. [Determinar o maior valor, comparando pares] Se A > B Então Se A > C então Max A ( A > B,A > C ) senão Max C ( C > A > B ) Senão Se B > C então Max B ( B > A, B > C ) senão Max C ( C > B > A ) 3. [Imprimir o maior valor] Escreva ( Maior valor =`, Max) 4. [Terminar] Fim Inicio Ler A,B,C; V F Se A > B V Se A > C V Se B > C F F A; C; B; C; Escreva(Max); Testes e Condições 12 Final

7.2 Seleção de Ações Alternativas : Ses Encaixados Cuidado com a paragrafação (indentação) Ex1: Se C1 então Se C2 então S1 senão S2 onde: C1 e C2 significam condições e S1 e S2, comandos Em que condições S2 é executado? Isso não fica claro. Testes e Condições 13

7.2 Seleção de Ações Alternativas : Ses Encaixados Ex2: Se C1 então Se C2 então S1 senão S2 Se C1 então Se C2 então S1 senão S2 Neste exemplo, o comando Se C2 só será executado se a condição C1 for Verdadeira. Se C1 for falsa, nenhum comando será Executado. Neste exemplo, o comando Se C2 só será executado se a condição C1 for verdadeira. Se ela for falsa, o comando S2 será executado Testes e Condições 14

7.2 Seleção de Ações Alternativas : Ses Encaixados Exemplo 4: Uma empresa decidiu dar uma gratificação de Natal a seus funcionários. Esta gratificação é calculada com base no número de horas extras trabalhadas e o número de horas de falta. A fórmula para se calcular o prêmio é a seguinte: Extra 2 /3 * Faltas. O prêmio é distribuído segundo a tabela a seguir: Extra 2/3 * Faltas > 40 horas > 30 mas <= 40 horas > 20 mas <= 30 horas > 10 mas <= 20 horas <= 10 horas Prêmio (R$) 50 40 30 20 10 Pede-se um algoritmo e um programa em C, para ler informações de funcionários e calcular o prêmio a ser dado. Testes e Condições 15

Exemplo 4: continuação Algoritmo Bônus Variáveis: Extras, Faltas, Pagamentos : reais Nome : cadeia Início 1. [Ler informações de um funcionário] Leia (Nome, Extras, Faltas) 2. [Calcular o prêmio] Se Extras (2/3.0) * Faltas > 40 Então Pagamento 50 Senão Se Extras (2/3.0) * Faltas >30 Então Pagamento 40 Senão Se Extras (2/3.0) * Faltas >20 Então Pagamento 30 Senão Se Extras (2/3.0)*Faltas>10 Então Pagamento 20 Senão Pagamento 10 3. [Imprimir resultados] Escreva ( Prêmio para`, Nome,`=R$`, Pagamento) Fim Se A > 40 F Se A > 30 F Se A > 20 F Se A > 10 F P 10; Testes e Condições 16 V V P 40; V P 30; V P 20; P 50;

Exemplo 4: continuação Podemos melhorar este algorítmo, calculando o valor do teste (Extra (2/3.0) * Faltas) somente uma vez. Para isto vamos introduzir uma variável temporária (Valor_teste). 2.1 [Calcular o valor teste] Valor_teste Extras (2/3.0) * Faltas 2.2 [Calcular o prêmio] Se (Valor_teste > 40) Então Pagamento 50 Senão Se Valor_teste > 30 Então Pagamento 40 Senão Se Valor_teste > 20 Então Pagamento 30 Senão Se Valor_teste > 10 Então Pagamento 20 Senão Pagamento 10 Testes e Condições 17

7.3 Seleção de Ações Alternativas: O Comando if Em linguagem C a construção Se Então - Senão é feita através dos comandos if-else: Comando if # Sintaxe: if (expressão é verdadeira) execute comando ou bloco de comandos Falso = 0 Verdadeiro 0 # Exemplo: if (contador > 9) contador = 0; Testes e Condições 18

7.3 Seleção de Ações Alternativas: O Comando if OBS: Quando dentro do comando if, forem executados mais de um comando (bloco de comando) é necessário colocar chaves, {}, para marcar o início e o fim dos comandos a serem executados. # Exemplo: Aqui tem duas ações sendo feitas dentro da condição verdadeira Chave marcando o início da condição verdadeira Chave marcando o fim da condição verdadeira if (contador >9) { contador = 0; soma = 32 } Testes e Condições 19

7.3 Seleção de Ações Alternativas: O Comando if Exemplo 5 Fazer um programa em C que leia um número e imprima uma mensagem dizendo se ele é maior, menor ou igual a 10. Observe a chave { marcando o início do if #include <stdio.h> #include <stdlib.h> main () { /* Início do programa */ int num; printf ("Digite um numero: "); scanf ("%d",&num); if (num > 10) printf ("\n\n O numero digitado eh maior que 10"); if (num == 10) { /* Início do if */ printf ("\n\n Voce acertou!\n"); printf ("O numero digitado e igual a 10."); } /* fim do if*/ if (num < 10) printf ("\n\n O numero digitado eh menor que 10"); system("pause"); } Testes e Condições 20

7.4 Seleção de Ações Alternativas: O Comando else O Comando else pode ser considerado um complemento do comando if, cujos comandos serão executados SOMENTE SE a expressão, especificada após o comando if, for 0 (falsa). # Sintaxe: if (expressão é verdadeira) Falso = 0 Verdadeiro 0 execute comando1 ou bloco1 de comandos else execute comando2 ou bloco2 de comandos Testes e Condições 21

7.4 Seleção de Ações Alternativas: O Comando else #include <stdio.h> #include <stdlib.h> main ( ) { int num; printf ("Digite um numero: "); scanf ("%d", &num); if (num == 10) {//início então printf ("\n\n Voce acertou!\n"); printf ("O numero e igual a 10.\n"); }//fim então else {//início senão printf ("\n\n Voce errou!\n"); printf ("O numero eh diferente de 10.\\nn"); }//fim senão system("pause"); } Exemplo 6 Refazer o programa em C do exemplo 5 anterior, utilizando o comando else Testes e Condições 22

7.5 Seleção de Ações Alternativas: if-else encaixados É possível aninhar construções do tipo if-else em diversos níveis. if (cond1) /* if1 */ if (cond2) /* if2 */ comando if2 ; else /* else2 */ comando else2 ; else /* else1 */ if (cond3) /* if3 */ if (cond4) /* if4 */ comando if4 ; else /* else4 */ comando else4 ; else /* else3 */ comando else3 ; Testes e Condições 23

7.6- Exercícios resolvidos - Comando If-else Exercício 1: Colocar o Exemplo 1 em Linguagem C #include <stdlib.h> #include <stdio.h> main() { // declarar variáveis float lab,exame1, exame_final, media; char nome[30]; //1. [Ler dados] printf( "Digite o nome do aluno: " ); scanf("%s",&nome); printf("\n\n" ); printf("digite as notas de: lab, exame1 e exame_final, do aluno:%d\n", nome); scanf("%f%f%f",&lab,&exame1,&exame_final); //2. [Calcular a média] media= 0.2*lab + 0.3 * exame1 + 0.5*exame_final; continua na página seguinte 24

7.6- Exercícios resolvidos - Comando If-else // 3. [imprimir resultados] Continuação do Exercício 1 printf ("\nnome. estudante:%s\n",nome); printf("\n"); printf("nota Laboratorio: %f\n\n",lab); printf("exame1: %f\n\n",exame1); printf("exame Final: %f\n\n",exame_final); printf("media Final: %f\n\n",media); if(media < 5.0 ) printf("reprovado\n\n\n"); else printf("aprovado\n\n"); system("pause"); }// fim programa Testes e Condições 25

7.6- Exercícios resolvidos - Comando If-else Exercício 2: Colocar o Exemplo 3 em Linguagem C #include <stdlib.h> #include <stdio.h> main( ) {// declarar variáveis float A, B, C, max; //1. [Ler dados] printf( "Digite tres numeros A, B, C\n" ); scanf("%f%f%f",&a,&b,&c); // 2. [Determinar o maior valor, comparando pares] if (A > B) { if (A > C) { max = A ; //( A > B, A > C ) printf( "\no maior valor eh o A\n" ); } else { max = C ; // (A > B e C >A ) printf( "\no maior valor eh o C\n" ); } } Exemplo 3 : Faça um programa que leia três números A, B e C e imprima o valor do maior.assumir valores distintos e reais. continua na próxima página Testes e Condições 26

7.6- Exercícios resolvidos - Comando If- else else { if (B > C) // ( B > A, B > C ) Continuação do Exercício 2 { max = B; printf( "\no maior valor eh o B\n" ); } else { max = C; // ( C > B > A ) printf( "\no maior valor eh o C\n" ); } } // 3. [Imprimir o maior valor] printf ("\nmaior valor =%f\n\n", max); system("pause"); } //4. Fim do programa Testes e Condições 27

7.6- Exercícios resolvidos - Comando If- else #include <stdlib.h> #include <stdio.h> main ( ) { int a, b, c, maior, meio, menor ; // declaração de variáveis. // Leitura de dados printf(" Entre com tres numeros inteiros\n"); scanf("%d%d%d",&a,&b,&c); if ( a > b ) if ( a > c ) { maior = a; if ( b > c ) { meio = b; menor = c; } else { meio = c; menor = b; } } Exercício 3: Refazer o programa do Exercício 2 para imprimir os 3 números na ordem crescente. else { maior = c; meio = a; menor = b; } continua na próxima página Testes e Condições 28

7.6- Exercícios resolvidos - Comando If- else Continuação do Exercício 3 else if ( a > c ) { maior = b; meio = a; menor = c; } else { menor = a; if ( b > c ) { maior = b; meio = c; } else { maior = c; meio = b; } } printf("em ordem crescente: %d %d %d\n\n", menor, meio, maior); system("pause"); } //fim programa Testes e Condições 29

7.7- Exercícios para Casa - Comando If-else 1) Colocar em Linguagem C os algoritmos dos exemplos 2, e 4. 2) Fazer um programa em C que leia 4 números (A, B, C, D) e encontre o maior deles. Imprima uma mensagem dizendo qual deles é o maior e o valor do maior. 3) Faça um programa em C que calcule o aumento de salário para o corrente ano. Se salário >1000 o aumento é de 5%. Senão o aumento é de 7%. 4) Preparar um algoritmo e um programa em C para ler os comprimentos dos três lados de um triângulo (S 1, S 2, e S 3 ) e determinar que tipo de triângulo temos, com base nos seguintes casos. Sejam A o maior dos lados de S 1, S 2, e S 3 e B e C os outros dois lados. Então: Se A B + C nenhum triangulo é formado Se A 2 = B 2 + C 2 um triangulo retangulo é formado, Se A 2 > B 2 + C 2 um triangulo obtusangulo é formado Se A 2 < B 2 + C 2 um triangulo acutangulo é formado Testes e Condições 30 53

7.7- Exercícios para Casa - Comando If-else 5) Faça um programa que leia dois valores, o primeiro servindo de indicador de operação e o segundo correspondendo ao raio de uma circunferência. Caso o primeiro valor lido seja igual a 1, calcular e imprimir a área desta circunferência. Se o valor lido for 2, calcular e imprimir o perímetro da circunferência. E se o valor lido for diferente destes dois valores; imprimir uma mensagem dizendo que o indicador de operação foi mal fornecido. 6) Fazer um programa que: dada a altura e peso de uma pessoa, calcule seu índice de massa corporal. Fórmula: peso dividido por altura ao quadrado. Faixas: <= 18,5 - abaixo do peso normal; > 18,5 e <= 25 - peso normal; > 25 e <=30 - peso acima do normal; acima de 30 - peso excessivo. Testes e Condições 54 31

7.7- Exercícios para Casa - Comando If-else 7) Faça um programa que leia dois valores, o primeiro servindo de indicador de operação e o segundo correspondendo ao raio de uma circunferência. Caso o primeiro valor lido seja igual a 1, calcular e imprimir a área desta circunferência. Se o valor lido for 2, calcular e imprimir o perímetro da circunferência. E se o valor lido for diferente destes dois valores; imprimir uma mensagem dizendo que o indicador de operação foi mal fornecido. 8)Fazer um programa que resolva uma equação de segundo grau, realizando consistências dos valores do discriminante e do coeficiente "a". Caso o discriminante seja negativo, deverá apenas ser impressa a mensagem: " Esta equação não possui raízes reais". Caso o coeficiente "a" seja igual à zero, deverá ser impressa a mensagem: " Esta não é uma equação de segundo grau" e deverá ser fornecido o valor da única raiz. Se o discriminante for maior ou igual a zero e o coeficiente "a" não for nulo, deverão ser impressas: "as raízes da equação: ax2 + bx + c = 0 são R1 = xxx e R2 = xxx". Testes e Condições 55 32

Resolução Exercícios para Casa (1) #include <stdlib.h> #include <stdio.h> // Programa: Mostre o maior de 2 números main() { int Valor1, Valor2, Max; //1. [Ler os valores] printf("digite dois numeros \n"); scanf("%d%d",&valor1,&valor2 ); //2. [Determinar o maior] if (Valor1 > Valor2) { Max = Valor1; printf ("\no Primeiro valor eh maior\n"); } Ex casa 1: Colocar o exemplo 2 em C continua na próxima página Testes e Condições 33

Resolução Exercício para Casa (1) else { Max = Valor2; printf ("\no Segundo Valor eh maior\n"); } //3. [Imprimir o maior valor] printf("maior Valor =%d\n\n", Max); //4. [Terminar] system("pause"); } Testes e Condições 34

Resolução Exercício para Casa (8) #include <stdlib.h> #include <stdio.h> #include <math.h> main() { int a, b, c; float delta, raiz1, raiz2; printf("digite os coeficientes a, b, c da equacao\n"); scanf("%d%d%d",&a,&b,&c); if(a==0) { printf(" esta equacao eh de 1o. grau\n"); raiz1= -c/b; printf(" sua raiz eh: %f \n", raiz1); } else { delta=(pow(b,2)-4*a*c); if(delta >= 0) { raiz1=(b+sqrt(delta))/(2*a); raiz2=(b-sqrt(delta))/(2*a); printf("as raizes sao:r1= %f,r2=%f \n",raiz1,raiz2); } else printf("esta equacao nao possui raizes reais\n"); } } system("pause"); Testes e Condições 35

7.8 Aplicação: O paradoxo da inovação Os dados do censo (que ocorre a cada 10 anos) de 1880 dos EUA levaram quase 8 anos para serem processados. Temia-se que os dados do censo de 1890 não estivessem processados em 1900. Herman Hollerith (estatístico): Foi encarregado pela Agência Estatística dos EUA de desenvolver uma técnica para acelerar o processamento dos dados do censo, levando apenas 3 anos. Testes e Condições 36

7.8 Aplicação: O paradoxo da inovação Lei de Moore: O fundador da Intel, Gordon Moore, constatou que a capacidade de processamento dos computadores dobra a cada 1 ano, enquanto os custos permanecem fixos.? Problema: Imagine que uma tarefa deve ser processada e levará 8 anos e que não pode ser movida da máquina uma vez iniciada. De acordo com a Lei de Moore deve-se esperar a melhoria dos processadores ou deve-se começar hoje?! Solução: O senso comum diz que é melhor começar agora, mas antes de por a mão na massa é bom olhar a Tabela dada a seguir: Testes e Condições 37

7.8 Aplicação: O paradoxo da inovação Início Tempo de Desenvolvimento (anos) Tempo de Processamento (anos) Tempo Total (anos) Final 0º. ano 1º. ano 2º. ano 0 8 8 1 4 5 2 2 4 8º. ano 5º. ano 4º. ano 3º. ano 3 1 4 4º. ano 4º. ano 4 0,5 4,5 4º. ano! Observação: É melhor começar no 2º. ou 3º. Ano, pois com isso pode-se terminar antes a tarefa. Esta análise também pode ser útil para dividir recursos entre produção e pesquisa. 38

7.8 Aplicação: O paradoxo da inovação Forma Geral: O paradoxo da inovação pode ser formulado de acordo com três parâmetros: tempo de desenvolvimento t, taxa de aperfeiçoamento a e tempo de processamento p. No caso anterior, os valores eram: 8 p = 8 e a = 50% = 0.5. y t t 2 A fórmula para o caso geral será dada por: y t p (1/ a) t Considerando-se t variável, a e p fixos, para encontrar o menor tempo y, pode-se fazer dy/dt = 0. Alternativa: Vale a pena esperar se p/(1/a) > 1 Testes e Condições 39

7.8 Aplicação: O paradoxo da inovação No caso anterior: 8/(1/0.5) = 4 > 1 Início Tempo de Desenvolvimento (anos) Tempo de Processamento (anos) Tempo Total (anos) Final 0º. ano 1º. ano 2º. ano 0 8 8 1 4 5 2 2 4 8º. ano 5º. ano 4º. ano 3º. ano 3 1 4 4º. ano 4º. ano 4 0,5 4,5 4º. ano Testes e Condições 40

7.8 Aplicação: O paradoxo da inovação Exemplo 7 Algoritmo: Inovação variáveis: r,p,a: real; Inicio Escreva( Forneça a e p ) Leia (a, p); r (p/(1/a)); Se (r > 1.0) Então Escreva( Espere ); Senão Escreva( Comece ); Fim // Programa: paradoxo da inovação. #include <stdio.h> #include <stdlib.h> main() { float a, p, r; printf( Forneça a e p: ); scanf( %f %f,&a,&p); r = p/(1/a); if (r > 1.0) printf( Espere ); else printf( Comece ); system( pause ); } Código C Testes e Condições 41

Unesp-Campus de Guaratinguetá 7 Testes e Condições FIM Aula 7 Referências dos slides Curso de Programação de Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Prof. Décio Mourão Testes e Condições Prof. Galeno Sena 42