720 likes | 818 Views
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
E N D
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMASLINGUAGEM DE PROGRAMAÇÃO IAula 8 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 numero • Case sensitive • Deve descrever o conteúdo Ex: vPQP ou vTotal ? 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Variáveis, constantes , tipos de dados • Variáveis • Armazenam valores de acordo com seus tipos de dados declarados (int,char,float,double). • Precisam ser declaradas • Declaração : intvTotal; charvNome; intvSalario; • Reserva espaço em memória de acordo com o tipo. 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Variáveis, constantes , tipos de dados • Variaveis não pode ter o mesmo nome de palavras-chave ou reservadas. 03/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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ão • Atribuição pode ser feita junto com a declaração : • IntvTotal = 1000 ou intvTotal = vTotal + vSubtotal • Ultimo valor atribuído substitui anterior • Pode 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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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ão • Atribuição pode ser feita junto com a declaração : • IntvTotal = 1000 ou intvTotal = vTotal + vSubtotal • Ultimo valor atribuído substitui anterior • Pode 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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Variáveis, constantes , tipos de dados • Constantes • Declarada com a diretiva #define ou const: • #define PI 3.14159265 • ConstintaliqicmsSp; (; so pra const) • Oposto das variáveis, mantém seu valor por toda a execução do programa, não podem ser alteradas. • Ex.: intvMaxcolunas=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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 9 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Variáveis, constantes , tipos de dados • Básicos • CHAR, INT, FLOAT E DOUBLE • Podem ser Alterados com modificadores LONG, SHORT e UNSIGNED (ver tabela de tipos alterados prox slide) 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Variáveis, constantes , tipos de dados • Tabela de tipos modificados 03/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 unsignedpermite que uma variável aceite apenas valores positivos. 03/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Operadores aritméticos, relacionais e lógicos • 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) 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Operadores aritméticos, relacionais e lógicos - Continuação • 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 operando • Ex. var = var -- 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Operadores aritméticos, relacionais e lógicos - Continuação • 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. 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Operadores aritméticos, relacionais e lógicos - Continuação • Modo Pré-Fixado e Pós-Fixado 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Operadores aritméticos, relacionais e lógicos - Continuação • Operadores aritméticos de atribuições • Combinações podem simplificar instruções 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Operadores aritméticos, relacionais e lógicos - Continuação • Responsaveis por comparações de expressões nos programas • Retornam zero para falso e um para verdadeiro 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Operadores aritméticos, relacionais e lógicos - Continuação • Exemplo de comparações de expressões nos programas 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Operadores aritméticos, relacionais e lógicos - Continuação • Operadores Lógicos – Servem para interligar mais de uma expressão relacional • Retornam zero para falso e um para verdadeiro 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Operadores aritméticos, relacionais e lógicos - Continuação • Operadores Lógicos – Exemplo 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Operadores aritméticos, relacionais e lógicos - Continuação • 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 parentes • Ex.: 4/2*5+1=11 4/2*(5+1)=12 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Programação em C • Um 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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Programação em C - Continuação • Linguagem é Case Sensitive, maiusculas e minusculas fazem diferenca. • Todas as instruções são escritas em letras minusculas • Apenas usar Letras maiusculas em variaveis, mensagens ou funções escritas pelos programadores. 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Programação em C - Continuação • Nome 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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Programação em C - Continuação • Tabela de códigos especiais 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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; doubley; ccout << “ Estrutura sequencial em C”; 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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ção IF(expressao de teste) IF(expressao de teste) instrução; { ou Instrução; if(condicao) instrucao; Instrução; } 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Operador Condicional - ? • Único operador Ternário em C, indica a espera de três argumentos. • Sintaxe : condição ? Expressao1 : expressao2 • Funcionamento • Condição é avaliada • Se resultado for verdade, o resultado de toda a expressão é o valor devolvido por expressão1 • Se resultado for falso, o resultado de toda a expressão é o valor devolvido por expressão2 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Operador Condicional ? • Exemplos 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Switch • Funcionamento • Se o Valor da expressão for igual a alguma das constantes que seguem os varioscase, 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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Switch • Exemplo prog0312.c : 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 03/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 (}). 03/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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) { intnCont = 1000; intnPara=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; } } 03/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 03/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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: 03/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 48 03/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 49 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Vetores • Inserção/Exclusão Realocação dos elementos Posição de memória não liberada Ex : int nota [ 5 ] nota [1]=9.5; nota[2]=7.4 ......... 50 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com