Linguagem de Programação

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

Soluções Iterativas com Laços
Cálculo Diferencial e Integral III
Algoritmo I Aula 05 Pseudo-Linguagem.
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 07 Aquiles Burlamaqui UERN
Introdução a Algoritmos Seqüenciais
Algoritmos e Programação Linguagens de Programação Teoria Aula (09/06)
Programação de Computadores - 3
Estruturas de repetição
PROCEDIMENTOS COM RECURSIVIDADE
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
THOBER CORADI DETOFENO, MSC. Aula 07
AULA – Linguagem C – Vetores, Ponteiros e Estruturas
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Lógica de Programação Módulo II
CÁLCULOS FINANCEIROS 2ª aula MATA12 e MATA12DP 21/08/2013.
CÁLCULOS FINANCEIROS 2ª aula
Módulo I - Exercícios PSI – Programação e Sistemas de Informação Exercícios – Funções pré-definidas; Estruturas repetitivas. 1- Faça um algoritmo.
Linguagem de Programação
Classes e objetos Arrays e Sobrecarga
Classes e objetos Modelagem
Estrutura de decisão e repetição em JAVA
Algoritmos Estruturados Avançados 2º Período CSTA - UTP
APRESENTAÇÃO: DAVID ANDERSON CARDOSO DANTAS CURSO DE C AULA 04: Funções Maceió, Maio de 2010.
Atividades PPI – Logística III.
Aula prática 6 Vetores e Matrizes
Introdução à Programação
Trabalho Computacional Mecânica de Fluidos Ambiental aula 3
Informática e Computação Estrutura de Repetição aula 13
PROGRAMAÇÃO ESTRUTURADA II
( UFSC ) Seja f(x) = ax + b uma função linear. Sabe-se que f(-1) = 4 e f(2) = 7. Dê o valor de f(8). y = ax + b f(-1) = 4 (-1, 4) 4 = a(-1) + b (2,
BCC /01 Funções. Material Didático Unificado. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento de Ciência.
Lógica de Programação Aula anterior
Tipos Abstratos de Dados
Recursividade Programação II.
Trabalho Computacional Mecânica de Fluidos Ambiental aula 4 Guillaume Riflet, Dúvidas:
UNIDADE 6 - complemento Funções recursivas
Programação II Estruturas de Dados Aula 02 - continuação
Professor José Rui Aula 06
Cálculo Diferencial e Integral – CDI 2
©Prof. Lineu MialaretAula /3Cálculo Numérico Cálculo Numérico – CN Prof. Lineu Mialaret Aula 20: Zeros de Funções Instituto Federal de Educação,
Linguagem de Programação
Linguagem de Programação JAVA
Tópicos Especiais em Programação 5º Período CSTA - UTP
BCC /01 Aula Teórica 09 Funções Material Didático Proposto. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento.
Algoritmos e Estrutura de Dados I
Algoritmos e Estruturas de Dados RECURSIVIDADE. O que é recursividade? Recursividade significa algo ser definido em termos de sí próprio. Em termos de.
Introdução à Linguagem C
FUNÇÃO DO 1º GRAU.
Algoritmos – Exercícios no Visualg
OPERAÇÕES COM MONÔMIOS E POLINÔMIOS
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo.
Como analisar um algoritmo
TOPOGRAFIA 2 EXERCICIO DE AVALIAÇÃO PLATAFORMA OBS: 1º DESENHO (CORTE E COMPENSADA) ENTREGAR FEITO NA DATA MARCADA 2º DESENHO (COMPENSADA) LEVAR.
Linguagem de Programação
Linguagem de Programação II Parte VI Professora: Flávia Balbino da Costa.
Programação I Aula 07 Autor: Francisco Airton Professor: André L. R. Didier 1.
ATPS – I PRIMEIRO TRIMESTRE DISPOSITIVOS MÓVEIS
Exercício Diagrama Lílian Simão Oliveira.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 08) Prof. Alessandro Bernardo.
Fundamentos de Programação Aula 4. 2 Conteúdo Estruturas Básicas de Programação –Repetição, laço, loop ou iteração Exercícios.
MATEMÁTICA AULA 6 SEQÜÊNCIAS - PA.
PROGRAMAÇÃO PARA INTERNET Prof.: Jean Carlo Mendes
Linguagem de Programação
CÁLCULO NUMÉRICO. ZEROS REAIS DE FUNÇÕES REAIS Fase1: Isolamento das Raizes Teorema 1: Seja f(x) uma função contínua num intervalo [a,b]. Se f(a).f(b)
Aula Prática 5 Recursão Monitoria  Na linguagem C, como em muitas outras linguagens, uma função pode chamar a si própria.  Uma função assim.
Fundamentos de Programação 1 Aula N. 02 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Laços de Repetição em C”
1Unidade 04 – Estruturas de Repetição Algoritmos e Linguagens de Programação Estruturas de Repetição Prof.: Guilherme Baião S. Silva
Transcrição da apresentação:

Linguagem de Programação Aula 06 – Macros e Funções

Média de uma seqüência de valores Dado n positivo e uma seqüência de n números reais calcular a média dos elementos da seqüência. Faça um loop para validar se n é maior que zero, ou seja, enquanto n<=0 exiba uma mensagem de erro e solicite um novo valor de n.

Solução main() { int qtd, i; float vlr, soma, media; soma = 0; do /* loop validação*/ { printf("\nDigite a quantidade: "); scanf("%d", &qtd); } while (qtd <=0); printf("\nDigite os valores:\n "); for(i=0; i<qtd; i++) /*loop entrada de dados*/ { scanf("%f", &vlr); soma = soma + vlr; } media = soma/qtd; /*Calcula média*/ printf("\nMedia %.2f", media); }

Exercício para entregar Numa agência bancária, as contas são identificadas por números de até 6 dígitos seguidos de um dígito verificador, calculado da seguinte forma: Ex.: Seja n = 7314 o número da conta. 1) Obtemos a soma dos dígitos de n: s = 7+3+1+4 = 15 2) Obtemos o dígito verificador a partir do resto da divisão de s por 10: d = s % 10 = 15 % 10 = 5 O número da conta é: 007314-5 Dado um número de conta n, exiba o número de conta completo correspondente.

Lógica para a solução Leia n (long int para suportar 6 dígitos); Use um laço de repetição para somar seus dígitos; Após o laço, obtenha o DV pelo resto da divisão por 10; Imprima o número da conta formatado, incluindo o DV;

Solução main() { long int n, s, c; printf("\n Digite numero da conta: "); scanf("%ld", &n); c = n; s = 0; while (n != 0) { s = s + (n % 10); /* ou s += (n%10);*/ n /= 10; /* ou n = n / 10;*/ } printf("\nConta: %06ld-%1d",c ,s%10); }

Mais exercícios Um comerciante precisa informatizar o caixa de sua loja. Codifique um programa que: Leia uma série de valores correspondendo aos preços das mercadorias compradas por um cliente (o valor zero finaliza a entrada); Calcule o valor total; Aplique o desconto conforme tabela ao lado; Mostre o valor a ser pago pelo cliente.

Solução main() { float total, vlr, final; total = 0; do { printf ("\nValor do item:"); scanf("%f", &vlr); total = total + vlr; } while (vlr!= 0); (...)

Solução - continuação (...)if (total < 50) final = (total * 0.95); else if (total <= 100) final = (total * 0.90); if (total <=200) final = (total * 0.85); final = (total * 0.80); printf ("\nTotal da compra: %.2f", total); printf ("\nValor final com desconto: %.2f", final); }

Pré-processador Módulo adicional pelo qual passa o programa C antes de ser compilado. Modifica o programa antes do mesmo ser compilado Modificações feitas a partir de diretivas embutidas no código fonte Principais diretivas: #include #define

Diretiva #define Usada para definir constantes simbólicas (substituições) Dá maior legibilidade do código. Sintaxe: #define identificador texto Ex.: #define PI 3.14

Exemplo # include <stdio.h> # define diga printf # define oi “\nOlá, tudo bem?” main() { diga (oi); }

Exercício Inclua as diretivas define para o programa abaixo compilar/executar corretamente. programa inicio limpaTela; diga ("olá !"); fim

Macros Quando a diretiva é usada para definir substituições com parâmetros. Exemplo: #define quad(n) nn Substituições: quad( x ) => x * x quad( 2 ) => 2 * 2 quad( f(x-3)) => f(x–3) * f(x–3) quad( x+4 ) => x+4 * x+4 Cuidado com espaços!

Possíveis erros Cuidado ao construir macros, pois a substituição pode provocar alguns erros. Por exemplo: quad( 2+3 ) = 25? 2+3 * 2+3 = 11 100/quad(2) = 25? 100/ 2 * 2 = 100

Corrigindo Gostaríamos que ao invés de: quad(2 + 3) = 2+3*2+3 Tivéssemos: quad(2 + 3) = (2+3)*(2+3) Então alteremos: #define quad(n) nn Para: #define quad(n) (n)(n)

Exercício Defina as seguintes macros: Para casa: soma(x, y); max(x, y); abs(n); Para casa: eh_minuscula(c); eh_maiuscula(c); minuscula(c); maiuscula(c);

Diretiva #include Inclui uma cópia do arquivo entre <> ou “” no código fonte do nosso programa Exemplos: #include <stdio.h> #include <conio.h> #include <math.h>

Incluindo nossos arquivos Podemos desenvolver nossos arquivos cabeçalho (header) e incluí-los usando a diretiva #include. Em geral usamos os sinais <> para arquivos do compilador C que ficam no diretório INCLUDE. E “” para arquivos que nós mesmos desenvolvemos.

Exemplo: arquivo de macros /* macros.h */ # define abs(n) ((n)<0 ? -(n) : (n)) # define max(x, y) ((x)>(y)? (x) : (y)) # define soma(x, y) ((x) + (y)) Salvar como macros.h

Usando arquivo de macros /*teste.c*/ #include <stdio.h> #include “macros.h” main() { int n1 = -7; int n2 = 8; printf("\n %d ", soma(2*3, 1 + 3)); printf("\n %d ", abs(n2)); printf("\n %d ", max(n1, n2)); }

Exercício para casa Crie o arquivo boolean.h com as definições necessárias para que o programa abaixo possa produzir a saída: true false true. main() { printf("%s ", bool(not false) ); printf("%s ", bool(false and true) ); printf("%s ", bool(true or false) ); }

Funções Que são funções? Programas em C possuem uma função main( ) com a lógica principal do programa. Fazemos uso de funções existentes em bibliotecas C. printf(); scanf(); getch(); clrscr();

Definição de funções Podemos definir nossas próprias funções. Vantagens: Clareza do código fonte Reuso da lógica. Uma vez codificada pode ficar disponível em bibliotecas

Sintaxe tipo_devolvido nome_funcao (parâmetros) { declarações comandos } tipo_devolvido: tipo de dado que a função devolve. (void: não devolve dados) nome_funcao: nome que identifica a função parâmetros: lista de variáveis que representam entrada de dados na função

Funções que não devolvem valores void boas_vindas( void ) { printf("\nSeja bem vindo."); } void main() boas_vindas(); getch(); Não é possível atribuir a variáveis ou expressões; x = boas_vindas (); Não é possível usar parâmetros quando não definidos; boas_vindas(“Olá”);

Funções com parâmetros void cumprimentos( char c ) { switch(c) case ‘N’: printf("\nBoa noite!"); break; case ‘T’: printf("\nBoa tarde! ");break; default : printf("\nBom dia!"); } void main() cumprimentos(‘N’); getch();

Funções que devolvem valores Funções que não são do tipo void usam comando return para devolver o resultado da função; O comando return interrompe a execução da função, voltando com o controle para o programa principal ou para a função que a chamou. Neste caso, as linhas de comando codificadas após o comando return não serão executadas.

Exemplos float hip (float a, float b) { float h; h = sqrt( pow(a,2)+pow(b,2)); return h; } ... x = hip (3, 4); /* x recebe 5 */ double max (double a, double b) { if ( a>b ) return a; /* interrompe a função*/ return b; ... y = max (10, 20); /* y recebe 20*/

Exercícios (entregar) Codifique a função fat(n), que devolve o fatorial de n. Codifique a função rodizio(placa), que recebe o número da placa de um veículo e exibe o dia em ele está no rodízio.

Data da P1 Primeira prova de LP 13/out Após semana de tecnologia