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

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

Jan 06, 2016

Download

Documents

zagiri

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula 8. Agenda. Revisão para Avaliação Regimental Variáveis, constantes, tipos de dados, operadores aritméticos, relacionais e lógicos Programação básica Estruturas condicionais, IF and IF ELSE - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  8

1

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

LINGUAGEM DE PROGRAMAÇÃO I

Aula 8

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  8

2

Agenda Revisão para Avaliação Regimental

Variáveis, constantes, tipos de dados, operadores aritméticos, relacionais e lógicos

Programação básica Estruturas condicionais, IF and IF ELSE Operador ternário Switch Precedência de operadores lógicos e relacionais Estruturas de Repetição do... while e for Matrizes Funções

Exercícios

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  8

3

Variáveis, constantes , tipos de dados Variáveis – Espaço de memória reservado para certo tipo

de dado. Terá valores diferentes em diferentes momentos. Declaração de variáveis – reserva espaço de memória de acordo com

tipo, sempre devem ser declaradas

Nomes devem obedecer preceitos :Letras maiúsculas e minúsculas.Primeiro caracter não pode ser numeroCase sensitiveDeve descrever o conteúdo Ex: vPQP ou vTotal ?

02/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  8

4

Variáveis, constantes , tipos de dados Variáveis

Armazenam valores de acordo com seus tipos de dados declarados (int,char,float,double).

Precisam ser declaradasDeclaração : int vTotal; char vNome; int vSalario;Reserva espaço em memória de acordo com o tipo.

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

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

Variáveis, constantes , tipos de dados

Variaveis não pode ter o mesmo nome de palavras-chave ou reservadas.

503/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  8

6

Variáveis, constantes , tipos de dados - complementação

Variáveis Atribuição de valores

Ao ser declarada não tem uma valor aleatório de bites (0 e 1)Sintaxe variavel = expressãoAtribuição pode ser feita junto com a declaração :

Int vTotal = 1000 ou int vTotal = vTotal + vSubtotalUltimo valor atribuído substitui anteriorPode atribuir mesmo valor a varias variáveis :

a= b= c= d = 5 (valores são atribuídos da direita pra esquerda)ou a=5; b=5; c=5; d=5;

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  8

7

Variáveis, constantes , tipos de dados - complementação

Variáveis Atribuição de valores

Ao ser declarada não tem uma valor aleatório de bites (0 e 1)Sintaxe variavel = expressãoAtribuição pode ser feita junto com a declaração :

Int vTotal = 1000 ou int vTotal = vTotal + vSubtotalUltimo valor atribuído substitui anteriorPode atribuir mesmo valor a varias variáveis :

a= b= c= d = 5 (valores são atribuídos da direita pra esquerda)ou a=5; b=5; c=5; d=5;

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

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

8

Variáveis, constantes , tipos de dadosConstantes

Declarada com a diretiva #define ou const:#define PI 3.14159265Const int aliqicmsSp; (; so pra const)

Oposto das variáveis, mantém seu valor por toda a execução do programa, não podem ser alteradas.Ex.: int vMaxcolunas=100 (Numero max. De colunas)

É mais fácil lembrar do nome da constante do que seu valor que será usado repetidas vezes no programa.

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  8

Variáveis, constantes , tipos de dados Diferenças entre const e #define.

Uma constante definida com const existe fisicamente em uma determinada posição de memória.

Uma constante definida com #define não existe fisicamente na memória, sendo seu valor substituido ao longo do programa na fase de pré processamento (antes da compilação)

Const faz parte das palavras reservadas da linguagem C #define é uma diretiva que indica ao pré-processador que o simbolo

que a segue vai ficar com o valor que aparece depois do simbolo, antes de compilar o pré-processdor subtitui o simbolo pelo valor definido.

Constante definida com const fica com o tipo de dado indicado na definição enquanto que se usar #define o tipo resulta da expressão que aparece no componente valor.

Como #define não faz parte da ling. C não precisa de ; no final

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

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

10

Variáveis, constantes , tipos de dados

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

BásicosCHAR, INT, FLOAT E DOUBLEPodem ser Alterados com modificadores LONG,

SHORT e UNSIGNED (ver tabela de tipos alterados prox slide)

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

Variáveis, constantes , tipos de dados Tabela de tipos modificados

1103/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  8

Variáveis, constantes , tipos de dados

Modificadores – long , short, unsigned Com exceção de void os tipos basicos podem ser

acompanhados de modificadores na declaração Além dos tipos de dados básicos existem outros tipos de dados ditos

modificados. Em C existem dois modificadores: o modificador long e o modificador unsigned. Tipicamente o modificador long aumenta o número de bytes usados para o registro do número. Por conseqüência o intervalo de validade do número fica aumentado significativamente.

Por padrão uma variável de tipo inteiro aceita números positivos e negativos O modificador unsigned permite que uma variável aceite apenas valores

positivos.

1203/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  8

13

Operadores aritméticos, relacionais e lógicos

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

Indicam ao compilador a necessidade de manipulações Matematicas ou lógicas de dados.Operadores Aritméticos – Para calculo de

expressões matemáticas.Binários = Atribuição

+ Soma- Subtração/ Divisão% Módulo (obtem o resto da divisão)

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

14

Operadores aritméticos, relacionais e lógicos - Continuação

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

Unários – Atuam na inversão de valores - Sinal Negativo + Sinal Positivo

Incremento – Soma 1 ao operando (variável)Ex. var = var++

Decremento – Subtrai 1 do operandoEx. var = var --

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

15

Operadores aritméticos, relacionais e lógicos - Continuação

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

Modo Pré-Fixado e Pós-Fixado

Pré – Incrementa variavel e depois executa instrução

Pós – Executa instrução e depois incrementa a variavel.

Operador Instrução Pós-fixado Pré-fixado

++ var = var+1;var = var++;

ou var++;

var = ++var; ou

++var;

-- var = var-1;var = var--;

ou var--;

var= --var; ou

--var;

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

16

Operadores aritméticos, relacionais e lógicos - Continuação

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

Modo Pré-Fixado e Pós-Fixado#include <stdio.h>Void main(){Int Var,Var2;Var=5;Var2=++var;printf(“var=%d\n”,Var);printf(“var2=%d\n”,Var2);}

#include <stdio.h>Void main(){Int Var,Var2;Var=5;Var2=var++;printf(“var=%d\n”,Var);printf(“var2=%d\n”,Var2);}

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

17

Operadores aritméticos, relacionais e lógicos - Continuação

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

Operadores aritméticos de atribuiçõesCombinações podem simplificar instruções

Instrução normal Instrução reduzida

var = var + expr; var+=expr;

Var=var – expr; Var-=expr;

Var=var/expr; Var/=expr;Var=var*expr; Var*=expr;

 

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

18

Operadores aritméticos, relacionais e lógicos - Continuação

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

Responsaveis por comparações de expressões nos programas

Retornam zero para falso e um para verdadeiro

 

Operador Descrição> Maior

>= Maior igual< Menor

<= Menor igual== Igualdade!= Diferente

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

19

Operadores aritméticos, relacionais e lógicos - Continuação

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

Exemplo de comparações de expressões nos programas

 

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

20

Operadores aritméticos, relacionais e lógicos - Continuação

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

Operadores Lógicos – Servem para interligar mais de uma expressão relacional

Retornam zero para falso e um para verdadeiro

 

Operador Descrição

&& AND|| OR

!NOT (operador de

negação)

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

21

Operadores aritméticos, relacionais e lógicos - Continuação

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

Operadores Lógicos – Exemplo

 

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

22

Operadores aritméticos, relacionais e lógicos - Continuação

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

Precendência – Ordem em que os operadores são executados pelo compilador.

Caso tenham o mesmo nivel de predência são analisados da esquerda para a direita.

A precedência dos operadores pode ser mudada utilizando parentesEx.: 4/2*5+1=11 4/2*(5+1)=12

 

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

23

Programação em CUm programa em C consiste em uma ou varias funções

e comandos, formando uma sequencia de código organizada de tal forma que permita resolver um problema. Os nomes programa e função se confundem em C.

Forma Geral dos programas em C # Biblioteca.h – diretiva para compilador, não é C

Main() <- Primeira Função a ser executada{ <- Inicia o corpo da Função} <- Termina a Função

02/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  8

24

Programação em C - ContinuaçãoLinguagem é Case Sensitive, maiusculas e

minusculas fazem diferenca.Todas as instruções são escritas em letras

minusculasApenas usar Letras maiusculas em variaveis,

mensagens ou funções escritas pelos programadores.

02/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  8

25

Programação em C - ContinuaçãoNome de função pode ser qualquer nome menos

main, que indica função que inicia a execução do programa, todo programa deve ter um main

Tipo Void indica que programa não tem valor de retorno

#include <iostream.h>Void main(){

cout << “Primeiro Programa””;}

02/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  8

26

Programação em C - Continuação Espaço em branco é desconsiderado pelo compilador

Exceções Cadeia de caracteres constantes não podem ser separadas em diversas linhas Nomes de funções,operadores e comandos de linguagem não podem ser separados Diretivas como #include não podem ser escritas em diversas linhas

Toda instrução termina em ; Instruções devem ser escritas entre {} Operador de inserção << conecta mensagem ao comando

cout (objeto da classe I/O leitura e impressão)

02/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  8

27

Programação em C - Continuação Diretiva do pré processador - #include <biblioteca> -

Programa que examina o programa fonte e executa modificações

Inserindo o a biblioteca (arquivos de inclusão no diretório INCLUDE) no

código fonte antes da compilação. Arquivo iostream.h – Contem cout, << e recupera dados

digitados no teclado e saída em video. Códigos especiais – Não podem ser digitados no teclado,

obtidos por meio de combinação do sinal \

02/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  8

28

Programação em C - ContinuaçãoTabela de códigos especiais

02/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  8

29

Programação em C - Continuação Exemplo de uso de códigos especial – Imprimindo uma nova

linha:

#include <iostream.h>Main(){

Cout << “\nPrimeiro programa”;}

02/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  8

30

Programação em C - Continuação Constantes numéricas – Valor fixo e inalteravel

DECIMAL – 12345 Não podem estar entre aspas HEXADECIMAL – 0X41, 0X1afb (Base 16 precedidos de 0x) OCTAL – 041,010, 0754 (Base 8 Precedidos de 0)

010 diferente de 10 CARACTER – Definida para números entre 0 e 255, significa que cabe

em 1 byte, escritos com aspas simples ‘5’, ‘a’,’w’,’\n’,’\t’ Aspas simples ‘’ para único caractere Aspas duplas “” para cadeia de caracteres.

02/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  8

31

Estrutura Condicional Simples.

Antes de falarmos sobre estrutura condicional simples, uma pequena revisão.

Estruturas são usadas para controlar o funcionamento do programa. Estruturas sequenciais : Composta por comandos a serem

executados um após o outro sem tomada de decisão para desvio da sequência natural.

Ex.: float x; char sexo; int i; double y; ccout << “ Estrutura sequencial em C”;

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

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

32

Estrutura Condicional Simples.

Para incutirmos alguma “inteligencia” ou processos com maior complexidade aos programas devemos utililizar Estruturas condicionais.

Estrutura condicional simples – Implementada através de comandos de decisão, usados para decidir o que deve ser feito de acordo com uma expressão de teste.

IF – Decisão simples, com uma instrução sem chaves “{}”, com mais de uma instrução necessita chaves “{}”

1 instrução + de 1 instruçãoIF(expressao de teste) IF(expressao de teste) instrução; { ou Instrução;if(condicao) instrucao; Instrução; }

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

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

33

Estrutura Condicional Encadeada. IF ELSE encadeada – Implementa a estrutura de controle condicional encadeada

heterogena.If(pais == ‘Brasil’){ if( estado == ‘São Paulo’) { if( cidade == ‘São Paulo’) cout << “\nVoce esta na capital de São Paulo, Brasil”; else cout << “\nVoce não esta na capital de são Paulo; }} else cout << “\nVoce não esta no Brasil”

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

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

34

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 35: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  8

35

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 36: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  8

36

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 37: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  8

37

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 do switch e manda para instrução posterior ao switchO conjunto de todos os valores possíveis para a expressão é colocado entre chaves

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

38

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 39: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  8

39

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 40: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  8

40

Precedência de operadores Lógicos

Existem circunstâncias em que uma condição simples não é suficiente para tomar uma decisão, é necessário 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 41: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  8

41

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 42: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  8

42

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 43: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  8

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

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

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

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 (}).

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

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

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; }}

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

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

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

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

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

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:

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

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

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

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

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

Vetores

Representam os dados Homogêneos - Somente um tipo de dado, posições de memória, individualizados por índice, unidimensional.

Estrutura de dados linear que necessita de somente um índice para que seus elementos sejam endereçados.

Usado para armazenar lista de valores do mesmo tipo. Cada célula armazena somente um valor de dados do vetor

tipo. Características principais

Alocação estática, Estrutura homogênea, alocação seqüencial

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

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

Vetores Inserção/Exclusão

Realocação dos elementosPosição de memória não liberadaEx : int nota [ 5 ]nota [1]=9.5; nota[2]=7.4 .........

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

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

Matriz É um arranjo bidimensional ou multidimensional de vetores. Necessita de um índice para referenciar a linha e outro para referenciar a

coluna para que seus elementos sejam endereçados. Ex. Char letras[3][6]

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

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

Uso de Memória em C Funções para alocação de memória

função malloc que realiza a alocação de memória. Deve-se informar para a função a quantidade de bytes para alocação, retorna um ponteiro com o endereço reservado.

Como a função retorna um ponteiro para o tipo void, deve-se utilizar o typecast, transformando este endereço para o tipo de ponteiro desejado.

Calloc Aloca memoria especificando a quantidade de bloco de um determinado tamanho e inicializa com zeros.

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

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

Uso de Memória em C Funções para alocação de memória Função realloc – expande área inicialmente definida.

Deve-se passar para ela o ponteiro retornado pelo malloc e a indicação do novo tamanho.

Função free – libera área de memória reservada para matriz, passa-se o endereço para isso.

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

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

Declaração de VetoresTipo nome_variavel[no. De elementos] OU Int notas[4];

Tipo – Tipo de dados de cada um dos elementos do vetor Nome_variavel – Indica o Nome pelo qual o vetor sera chamado. No. De elementos – Valor constante que indica quantos elementos

tem o vetor.

Carga inicial – como as variáveis contem valores aleatoriosÉ possível iniciar automaticamente todos os elementos de um vetor :Tipo var[n] = {valor1,valor2,valor3,...valorn};

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

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

Declaração de Vetores Ex. de prog.

Para leitura de salários:

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

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

Matrizes e vetores Multidimensionais

Declaração : Tipo vetor[dim1] [dim2] [...] [dimn]

Constantes – Valor fixo (não se pode alterar ao longo da execução do programa).Const tipo simbolo = valor ou#define simbolo valor

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

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

Passagem de Vetores para Funções Usado para passagem de vários parâmetros/dados para

função – ex. função de inicialização de vetor com 10 posiçõesMain(){ int v[10]; inic1(v)}

void inic1(int s[10]){...}

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

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

Passagem de Vetores para Funções

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

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

59

Funções

Funções - mini-programas com objetivos específicos e únicos que buscam modularizar a programação.

Ex. de funções – printf, scanf, getchar, putchar, etc.

É Indispensável que o programador C domine completamente a escrita de programas de forma modular através de funções.

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

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

60

Funções

Importante – Um prog. Em C tem sempre que possuir a função main() para evitar erros de linkagem (Apenas 1!!).

Variáveis declaradas dentro de um bloco são locais.

Ex. de erro de linkagem

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

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

61

Funções

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

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

62

Funções

Nome – Deve seguir regras de declaração de variáveis

Não pode ser igual ao nome de outra função ou variável

Deve especificar o que faz e de fácil leituraComo funciona

Código executado quando invocada em alguma parte do programa

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

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

63

Funções

Como funcionaPrograma que invoca fica suspenso ate finalizar

execução da função.Programa que invoca pode enviar parâmetros.Função pode retornar Parâmetros ao programa

que invoca-la

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

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

64

Funções

Como funcionaCódigo executado quando invocada em alguma

parte do programa.Programa que invoca fica suspenso ate finalizar

execução da função.Programa que invoca pode enviar parametros.Função pode retornar Parametros ao programa

que invoca-la

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

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

65

Funções

Sem passagem e sem retorno de parametros:

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

Main(){.......funcaoX();}

funcaoX(){.............}

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

66

Funções

Com passagem e com retorno de parametros:

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

Main(){.......funcaoX(‘A’, 123,

23.599);}

funcaoX(char ch, int n, float x)

{......Return res;}

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

67

Funções

Com passagem e com retorno de parâmetros:O numero de parâmetros enviados deve ser igual

ao numero de parâmetros no cabeçalho

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

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

68

Funções

Com passagem e com retorno de parâmetros:Qualquer expressão valida em C pode ser enviada

como parâmetroO cabeçalho de uma função nunca deve ser

seguido por ; (ponto e virgula)O nome das variáveis (parâmetros) presentes no

cabeçalho da função não tem qualquer relação com o nome das variáveis enviadas.

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

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

69

Funções

Funções e procedimentosEm C existem apenas funçõesA função tem sempre um tipo e valor de retorno

associados, um procedimento não devolve qualquer valor.

Ex. função : int max(int n1, int n2) - verifica valores e devolve maior.

Ex, Procedimento : linha() – coloca uma linha na tela e termina sem devolver qualquer valor.

Sempre que no cabeçalho de uma função não é colocado tipo de retorno, ele é substituído por int.

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

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

70

Funções

Funções e procedimentosComo chamar funções:

Para armazenar valor em uma variavel : x=soma(23,y)Dentro de outra função : printf(“%d %d”, dobro(5), soma(dobro(2),3+2));OuIf (soma(x,y) > 0 )

Como chamar procedimentolinha (int n); ou int linha(int n);

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

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

71

Funções

Funções – Onde coloca-lasPodem ser colocadas em qualquer lugar do

Arquivo, antes ou depois de serem invocadas

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

void funcaoX(void){..}

Main(){ funcaX()}

Void funcaoX();Main(){ funcaX()}void funcaoX(){..}

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

72

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