tecnologia em anÁlise e desenvolvimento de sistemas linguagem de programaÇÃo i aula 4

31
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula 4 1 02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Upload: manon

Post on 06-Feb-2016

26 views

Category:

Documents


0 download

DESCRIPTION

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula 4. Agenda. Operador condicional Switch Precedência de Operadores Lógicos Precedência de Operadores Relacionais Switch Estruturas de repetição: do... while Estruturas de repetição: for - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

1

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

LINGUAGEM DE PROGRAMAÇÃO I

Aula 4

02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 2: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

2

Agenda Operador condicional Switch Precedência de Operadores Lógicos Precedência de Operadores Relacionais Switch Estruturas de repetição: do...while Estruturas de repetição: for Desenvolvimento teórico e prático: Exercícios com todas

as estruturas, sequenciais, compostas e de repetição.

02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 3: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

3

Operador Condicional - ?

Único operador Ternário em C, indica a espera de três argumentos.

Sintaxe : condição ? Expressao1 : expressao2 Funcionamento

Condição é avaliadaSe resultado for verdade, o resultado de toda a

expressão é o valor devolvido por expressão1Se resultado for falso, o resultado de toda a expressão

é o valor devolvido por expressão202/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 4: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

4

Operador Condicional ?Exemplos

02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

#include <stdio.h>int main(){ float salario; printf("Qual o Salario: "); scanf("%f",&salario); if (salario <= 0) printf ("Salario: Valor Invalido"); if (salario > 1000) printf ("Imposto = %2f\n", salario*1.10); else printf ("Imposto = %2f\n", salario*1.05); system("PAUSE");}

#include <stdio.h>int main(){ float salario; printf("Qual o Salario: "); scanf("%f",&salario); salario = salario > 1000 ? salario*1.10 : salario*1.05; printf("Novo Salário: %.2f\n",salario);} system("PAUSE");

Page 5: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

5

Operador Condicional ?

Considerações – embora pareça semelhante a instrução if-else o operador condicional “?“ Funciona de forma diferente, enquanto o operador condicional devolve sempre um resultado o if-else determina quais instruções deve ser executadas

02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 6: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

6

Switch

Quando existem algumas condições diferentes possíveis para o mesmo valor torna-se impraticável o uso de if-else.

Para essa situação a linguagem C fornece uma instrução que permite a seleção do código a executar a partir de um conjunto de valores possíveis para uma determinada expressão

02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 7: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

7

Switch A instrução switch é usada em tomada de decisões

em que o numero de possibilidades é elevado para reduzir a complexidade do if-else, sintaxe:

02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Switch (expressão){ case constante1: instruções1; case constante2: instruções2; .................... break; [dfault: instruções;]}

Expressão representa valor numérico dos tipos char, int ou long., é avaliada e em seguida o switch compara o resultado com valor de cada constante que segue cada um dos case.Instrução break para execução dentro so switch e manda para intrução posterior ao switchO conjunto de todos os valores possíveis para a expressão é colocado entre chaves

Page 8: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

8

SwitchFuncionamento

Se o Valor da expressão for igual a alguma das constantes que seguem os varios case, então são executadas as instruções que seguem o case correspondente

Se o valor da expressão não for igual a nenhuma das constantes apresentadas pelos case, então são executadas as instruções que seguem o parâmetro default

Após realizar teste de expressão e encontrar valor correspondente todas as linhas de código são executadas até a instrução break

O parâmetro default é opcional, caso não seja mencionado nada é executado caso o valor da expressão não seja igual a nehum dos case

Em cada case do switch só uma única constante do tipo char, int ou long pode estar presente para avaliação

02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 9: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

9

Switch

Exemplo prog0312.c :

02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Incorreto :#include <stdio.h>main(){ char Est_Civil; printf(“Qual estado Civil: “); scanf(“%c”,&Est_Civil); switch(Est_Civil) { case ´C´: printf(“Casado\n”); case ´S´: printf(“Solteiro\n”);

case ´D´: printf(“Divorciado\n”); case ´V´: printf(“Viuvo\n”); default : printf(“Estado Civil incorreto\n”);

}}

#include <stdio.h>main(){ char Est_Civil; printf(“Qual estado Civil: “); scanf(“%c”,&Est_Civil); switch(Est_Civil) { case ´C´: printf(“Casado\n”); case ´S´: printf(“Solteiro\n”);

case ´D´: printf(“Divorciado\n”); case ´V´: printf(“Viuvo\n”); break; default : printf(“Estado Civil incorreto\n”);

}}

Page 10: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

10

Precedência de operadores Lógicos

Existem circunstâncias em que uma condição simples nâo é suficiente para tomar uma decisão, é necessario a interligação de duas ou mais condições lógicas

02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 11: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

11

Precedência de operadores Lógicos

Permitem a combinação de duas ou mais expressões lógicas numa única expressão que devolve um único valor lógico (Verdadeiro ou Falso)

02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 12: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

12

Precedência de operadores Relacionais

Em C, como na maioria das linguagens de programação uma expressão nem sempre é avaliada (lida pelo compilador/interpretador) da esquerda para direita,

Exemplo:

2 + 3 * 4 = 14 (2 +3) * 4 = 20

02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 13: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

13

Precedência de operadores Relacionais

Para definir a ordem pela qual as operações são executadas existe a tabela de precedências.

Ocupam patamares Diferentes na hierarquia.Seta indica maior precedência

02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 14: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Estruturas de repetição: do...while

Laço while Implementa uma estrutura de repetição controlada pela verificação de uma

condição. Sintaxe : While (condição) OU While (condição) <instrução>; { <instrução>; <instrução> } Ao final da ultima instrução no corpo do comando avalia se a condição

continua verdadeira, caso continua repete as instruções dentro do corpo até que a condição não seja mais verdadeira

1403/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 15: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Estruturas de repetição: do...while

Laço while – continuação Ex.: int Ndia =1 while (ndia<=7) { printf (“Dia : %d\n",Ndia);

Ndia++; } Execução do laço pode ser interrompida por quebra de condição ou

comando Break que causa a saida do laço para a proxima instrução após o laço (}).

1503/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 16: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Estruturas de repetição: do...while O comando Break afeta apenas o laço interno a ele no caso de laços aninhados Lacos Aninhados :while (true){ int nCont = 1000; int nPara=0; printf("\n Entre com o numero de parada "); scanf("%d", &nPara); while (nCont > 0) { nCont--; cout << "\n \n" << nCont << "\n"; if(nCont==nPara) break; }}

1603/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 17: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Estruturas de repetição: do...while

O comando CONTINUE força a proxima iteração do laço e pula o codigo que estiver abaixo dele, ou seja força a avaliação da expressão de teste e depois continua o laço

Ex.: Imprime caracteres digitados que são diferentes de digitos

1703/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 18: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Estruturas de repetição: do...while

O comando CONTINUE força a proxima iteração do laço e pula o codigo que estiver abaixo dele, ou seja força a avaliação da expressão de teste e depois continue o laço

Ex.: Imprime caracteres digitados que são diferentes de digitos

1803/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 19: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Estruturas de repetição: do...while

A estrutura DO-WHILE, similar a estrura WHILE, faz a verificação de teste no final da estrura, bom para situações em que instruções no corpo devam ser excutadas antes da verificação, com sintaxe no exemplo a seguir:

1903/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 20: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Estruturas de repetição: for

Usada para implementar estrutura de controle de repetição de forma similar ao while/do-while

Três expressões separadas por ponto e virgula regulam seu funcionamento

2003/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 21: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Exercícios: Implemente :Programa prog0313.c, utilizando switch, que indique o estado

Civil através da primeira letra do mesmo.,letras maiúsculas e minúsculas (Casado, Solteiro,Divorciado e Viúvo)

Prog0314.c, utilizando switch, calculando o imposto pago por mulheres e homens, sendo 10% para mulheres e 5% a mais para homens do que o percentual pago pelas mulheres.

Prog0316.c, utilizando switch, leia uma operação binária entre dois inteiros e apresenta em seguida o resultado (calculadora)

2103/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 22: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Exercícios:

2203/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 23: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Exercícios:

2303/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 24: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Exercícios:

2403/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 25: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Exercícios:

2503/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 26: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Exercícios:

2603/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 27: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Exercícios:

2703/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 28: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Exercícios:

2803/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 29: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Exercícios:

2903/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 30: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

Exercícios:

Escreva um programa (prog0403.c) que coloque na tela a tabuada do 5, utilizando a estrutura de controle while.

Reescreva o programa anterior como programa0404.c de forma a apresentar a tabuada de qualquer numero introduzido.

3003/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 31: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  4

31

Bibliografia

02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

BIBLIOGRAFIA BÁSICA1 DAMAS, Luís. Linguagem C. 10ª Edição. São Paulo: LTC, 2007.2 FEOFILOFF, P. Algoritmos de Janeiro: Elsevier, 2009.

3MIZRAHI, Victorine Viviane. Treinamento 2ª Edição. São Paulo: Pearson Education, 2008.

4ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi. Fundamentos da Programação de Computadores. 2ª Edição. São Paulo: Pearson Education, 2007.

BIBLIOGRAFIA COMPLEMENTAR

1DASGUPTA, Sanjoy; UMESH, Vazirani, PAPADIMITRIOU Christos, Algoritmos. 1ª Edição. São Paulo: McGraw-Hill, 2009.

2LAUREANO, M. Estrutura de Dados com Algoritmos e C. 1ª Edição. São Paulo: Brasport, 2008.

3PEREIRA, Silvio do Lago. Estruturas de Dados Fundamentais – Conceitos e Aplicações. 7ª Edição. São Paulo: Érica, 2008.

4SOUZA, Marco Antonio Furlan et al. Algoritmos e Lógica de Programação. São Paulo: Cengage Learning, 2008.

5ZIVIANI, Nívio. Projeto de Algoritmos com Implementações em Pascal e C. 3ª Edição. São Paulo: Cengage Learning, 2010.

RECURSOS DIDÁTICOS

1 TV/VÍDEO/DVD 4 LABORATÓRIO – Software “Turbo C” ou “Dev C++”

2 DATASHOW 5 Aula expositiva em laboratório3 RETRO-PROJETOR 6 Exercícios em laboratório