Constru - PowerPoint PPT Presentation

1 / 54
About This Presentation
Title:

Constru

Description:

Title: Introdu o a Matem tica Computacional Author: Aquiles Medeiros Filgueira Burlamaqui Last modified by: aquiles Created Date: 10/18/2006 1:18:53 PM – PowerPoint PPT presentation

Number of Views:84
Avg rating:3.0/5.0
Slides: 55
Provided by: Aquil3
Category:

less

Transcript and Presenter's Notes

Title: Constru


1
Construção de AlgoritmosAULA 02
  • Aquiles BurlamaquiUERN
  • 2007.1

2
previously
  • Apresentação da Disciplina
  • Definição de algoritmo
  • Conceitos de memória, variáveis e constantes.
  • Tipos básicos de dados

3
Variáveis
  • Guardar dados
  • Nome
  • Tipo
  • Informação

Pseudocódigo ltTipogtltLista de
Variáveis ExInteiro idade Real
media,n1,n2,n3,n4,mf Lógico passou, flag
Literal letra
4
Variáveis
  • Existem algumas regras básicas que regulam a o
    batismo de variáveis. Estas regras básicas são
  • Todo nome só pode conter letras e dígitos
  • O caractere "_" é contado como uma letra
  • Todo primeiro caractere deve ser sempre uma
    letra
  • Letras maiúsculas e minúsculas são consideradas
    caracteres diferentes

5
Constantes
  • Reserva um espaço na memória acessado através do
    seu endereço que é vinculado no algoritmo a um
    nome
  • Esse espaço possui tamanho necessário para
    guardar seu tipo de dado, e guarda um valor fixo
    do início ao final do programa
  • Sintaxe
  • Constante ltnome_da_constantegt ltvalorgt
  • Ex
  • Constante pi 3,14

6
Conteúdo Programático
  • Unidade I
  • Fundamentos de Lógica de Programação
  • Algoritmo (metalinguagem)
  • Conceitos de memória, variáveis e constantes.
  • Tipos básicos de dados
  • Operadores aritméticos, relacionais e lógicos.
  • Comandos básicos de entrada e saída e atribuição
  • Conceito de bloco de comandos
  • Estruturas de controle de fluxo condicionais
    (se, se-senão e caso)
  • Estruturas de controle de fluxo repetições
    (para, enquanto e repita-enquanto)
  • Estruturas de Dados Homogêneas (vetores e
    matrizes)
  • Unidade II
  • Estruturas de Dados Heterogêneas (registros)
  • Modularização
  • Variáveis locais e globais
  • Funções
  • Passagem de parâmetros por valor e por referência
  • Funções recursivas

7
Expressões
  • Expressão
  • é uma combinação de variáveis, constantes e
    operadores que, uma vez avaliada, resulta num
    valor
  • Operadores
  • Quanto ao número de operandos
  • Unários
  • Binários
  • Quanto ao tipo de dado
  • Operadores Aritméticos
  • Operadores Lógicos
  • Operadores Literais
  • Operadores Relacionais

8
Operadores Aritméticos
  • Operador Tipo Operação Prioridade
  • binário adição 4
  • - subtração 4
  • multiplicação 3
  • / divisão 3
  • exponenciação 2
  • unário manutenção de sinal 1
  • - inversão de sinal 1

9
Operadores Aritméticos
  • Vamos considerar alguns exemplos para mostrar
    como estas regras são aplicadas. Considere as
    seguintes variáveis
  • A2.0
  • B4.0
  • C1.0
  • Vamos então analisar expressões com estas
    variáveis e seus resultados.
  • AB-C
  • A(B-C)
  • BA/C5
  • (BA)/(C5)

10
Operadores Aritméticos
  • 1)5x3 7x2 3x 1
  • Resp. 5.0x3 7.0x2 3.0x 1.0
  • 2)x0 v0t 1 gt2
  • 2
  • Resp.xo vot 0.5gt2

11
Operadores Lógicos
  • Operador Tipo Operação
    Prioridade
  • .OU. binário disjunção
    3
  • .E. binário conjunção
    2
  • .NÃO. unário negação
    1

12
Operadores Relacionais
  • Operador Comparação
  • igual
  • ltgt diferente
  • lt menor
  • lt menor ou igual
  • gt maior
  • gt maior ou igual

13
Operadores Literais
  • Não há padronização para seus operadores. Vamos
    considerar apenas o operador de concatenação (
    ) .
  • Exemplo
  • sonha dor resulta sonhador

14
Avaliação de Expressões
  • Regras
  • Observar a prioridade dos operadores. Se houver
    empate, considera-se a expressão da esquerda para
    a direita.
  • Os parênteses alteram a prioridade, forçando a
    avaliação da subexpressão em seu interior.

15
Instruções Primitivas
  • Entrada
  • Saída
  • Atribuição

16
Entrada
  • Sintaxe Leia ( lt lista_de_variáveis gt )
  • Semântica Os dados são fornecidos ao computador
    por meio de um dispositivo de entrada e
    armazenados nas posições de memória das variáveis
    cujos nomes aparecem na lista.
  • Exemplo
  • Leia ( x )
  • Leia ( a , b , c )

17
Saída
  • Sintaxe Escreva ( lt lista_de_expressões gt )
  • Semântica Os argumentos são enviados para o
    dispositivo de saída. No caso de uma lista de
    variáveis, o conjunto de cada uma delas é
    pesquisado na posição de memória correspondente a
    variável. No caso de argumento constante(número,
    literal ou lógico) este é enviado diretamente ao
    referido dispositivo. E no caso de expressões,
    após sua avaliação, segue como uma constante.
  • Exemplos
  • Escreva (Programa elaborado pelo aluno
    Thiago.)
  • Escreva (Digite um número inteiro positivo)
  • Escreva (Lados do triângulo , L1 , L2 , L3
    )
  • Escreva (Area do circulo , pir2)
  • Escreva (Area , xy, Perimetro , 2(x
    y))

18
Saída
  • Regras Básicas (Interface com o Usuário fase de
    execução)
  • Toda vez que um programa estiver esperando que o
    usuário forneça a ele um determinado dado
    (operação de leitura), ele deve antes enviar uma
    mensagem dizendo o que o usuário deve digitar,
    por meio de um instrução de saída.
  • Antes de enviar qualquer resultado ao usuário, um
    programa deve escrever uma mensagem explicando o
    significado do mesmo.

19
Atribuição
  • É a principal maneira de se armazenar uma
    informação numa variável.
  • Sintaxe lt nome_da_variável gt ? lt expressão gt
  • Semântica 1) avaliação da expressão
  • 2) armazenamento do valor resultante na
    posição de memória correspondente à variável que
    aparece à esquerda do comando.
  • Importante
  • Deve haver compatibilidade entre o tipo de dado
    resultante da avaliação da expressão e o tipo de
    dado da variável ( a não ser, propositadamente,
    com tipos numéricos).

20
Controle de Fluxo de um Programa
  • Comando Composto
  • Estrutura Seqüencial
  • Estrutura de Decisão
  • Se
  • Caso
  • Estrutura de Repetição
  • Para
  • Enquanto
  • Repita

21
Comando Composto
  • É um conjunto de comandos simples como
    atribuição, entrada, saída ou algumas construções
    (estruturas) apresentadas a seguir.
  • Ex
  • Escreve((ab)/15)
  • ou
  • bas (- b (b b 4. a c)0.5)/(2 a)

22
Estrutura Seqüencial
  • Cada comando é executado somente após o término
    do comando anterior.
  • Ex
  • Escreve(Qual o valor da conta?)
  • Leia(b)
  • a ? b 0.1
  • Escreve(10 do garçom dáa)

23
Estrutura de Decisão
  • Classificação quanto ao número de condições
  • uma condição ( decisão simples ) estrutura do
    SE
  • várias condições ( decisão múltipla )
    estrutura do ESCOLHA

24
Se
  • Sintaxe
  • Se ( lt condição gt ) então Se ( lt condição gt
    ) então
  • lt comando1 gt lt
    comando1 gt
  • senão Fim_se
  • lt comando2 gt
  • Fim_se

25
Se Aninhados
  • Algoritmo Max_min
  • Real a, b, c, max, min
  • Início
  • Escreva (Digite tres numeros )
  • Leia (a, b, c)
  • Se ( a lt b ) então
  • Se ( b lt c ) então
  • min ? a
  • max ? c
  • senão
  • max ? b
  • Se ( a lt c ) então
  • min ? a
  • senão
  • min ? c
  • Fim_se
  • Fim_se
  • senão
  • Se ( b gt c ) então

26
Escolha...Caso
  • Sintaxe
  • Escolha(ltexpressãogt)
  • Caso(ltcondição1gt)faça
  • ltcomando1gt
  • Caso(ltcondição2gt)faça
  • ltcomando2gt
  • .
  • .
  • .
  • Caso(ltcondiçãotgt)faça
  • ltcomandotgt
  • senão
  • ltcomandokgt
  • Fim_escolha

27
Escolha...Caso
  • Algoritmo Calculadora
  • Real num1,num2
  • Literal2 op
  • Inicio
  • Escreva(Digite um numero, o operador e outro
    numero )
  • Leia(num1,op,num2)
  • Escolha(op)
  • Caso(op)faça
  • Escreva(num1,op,num2, , num1num2)
  • Caso(op )faça
  • Escreva(num1,op,num2, , num1 num2)
  • Caso(op )faça
  • Escreva(num1,op,num2, ,num1 num2)
  • Caso(op / )faça
  • Se(num2ltgt0)então

  • Escreva(num1,op,num2, ,num1/ num2)
  • Senão
  • Escreva(Não existe
    divisão por zero.)
  • Fim_se

28
Estrutura de Repetição
  • Tipos
  • Contados
  • Para Faça
  • Condicionais
  • ENQUANTO FAÇA
  • REPITA ATÉ

29
Para- Faça
  • Sintaxe
  • Para ltvargt de ltinigt até ltfimgt passo ltincgt faça
  • ltcomandogt
  • Fim_para

30
  • Algoritmo Fatorial
  • Inteiro num,k,fat
  • Início
  • Escreva(Digite um número)
  • Leia(num)
  • Se(num gt 0)então
  • fat ? 1
  • Para k de 2 até num passo 1 faça
  • fat ? fatk
  • Fim_para
  • Escreva(Fatorial de, num, igual a ,fat)
  • Senão
  • Escreva(Não existe fatorial de número
    negativo.)
  • Fim_se
  • Fim

31
Enquanto - Faça
  • Sintaxe
  • Enquanto (ltexpressão lógicagt)faça
  • ltcomandogt
  • Fim_enquanto

32
  • Algoritmo MDC
  • Inteiro a, b
  • Início
  • Escreva (Digite dois numeros inteiro
    positivos )
  • Leia (a,b)
  • Se ( agt0 .e. bgt0 ) então
  • Enquanto ( alt gt b ) faça
  • Se ( a gt b ) então
  • a ? a b
  • senão
  • b ? b a
  • Fim_se
  • Fim_enquanto
  • Escreva ( mdc , a)
  • Senão
  • Escreva (Dados incorretos.)
  • Fim_se
  • Fim

33
Repita - Até
  • Sintaxe
  • Repita
  • ltcomandogt
  • Até (ltexpressão lógicagt)

34
  • Algoritmo Divisores
  • Inteiro num, div
  • Início
  • Repita
  • Escreva (Digite um numero inteiro positivo
    )
  • Leia (num)
  • Até (num gt 0)
  • Escreva (Divisores do número , num)
  • div ? 1
  • Repita
  • Se ( num / div div num) então
  • Escreva (div)
  • Fim_se
  • div ? div 1
  • Até (div gt num)
  • Fim

35
  • Linguagem C

36
Linguagem de Programação C
  • Criada em 1972 por Dennis Ritchie
  • Inicialmente para uso no UNIX
  • Características
  • Linguagem de programação imperativa
  • Apenas 32 palavras-chave
  • Estruturação modular, módulos compilados
    separadamente
  • Ponteiros como tipo de dado
  • Passagem de argumentos por valor
  • Facilidade de trabalhar os dados em bits
  • Nível intermediário entre nível de máquina e alto
    nível

37
Linguagem de Programação C
  • Uso
  • Desenvolvimento de software de sistemas
    operacionais
  • Drivers
  • Kernel
  • Api
  • Etc.
  • Desenvolvimento de sistemas embutidos
  • Etc.

38
Palavras reservadas do ANSI C
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
39
Estrutura básica de um programa em C
  • /
  • Modelo de programa em C
  • /
  • int main()
  • return(0)

40
Programa Olá Mundo
  • Copie o texto a seguir em um editor de textos, e
    salve com um nome qualquer, mas extensão .c
  • /
  • Programa Olá Mundo
  • /
  • include ltstdio.hgt
  • int main()
  • printf(Olá mundo!)
  • return(0)

41
Compilando um código em C
  • Após escrever e salvar um código em c, vá para o
    terminal e digite
  • gcc ltnome_do_arquivo.cgt -o ltnome_do_programagt
  • Em seguida, digite no terminal
  • ./ltnome_do_programagt
  • Observe o resultado da saída no terminal.

42
Comentários
  • Por área selecionada
  • / - início da área de comentário
  • lttexto comentadogt
  • ...
  • / - fim da área
  • Por linha
  • // ltlinha comentadagt

43
Tipos Primitivos
Tipo Especificação Bytes Valores
char Armazena um byte com sinal. 1 -128 a 127
unsigned char Armazena um byte sem sinal. 1 0 a 255
int Inteiro. 4 -2,147,483,648 a 2,147,483,647
short int Inteiro curto. 2 -32,768 a 32,767
long int Inteiro longo. 4 -2,147,483,648 a 2,147,483,647
44
Tipos Primitivos
Tipo Especificação Bytes Valores
unsigned int Inteiro sem sinal. 4 0 a 4,294,967,295
unsigned short Inteiro curto sem sinal. 2 0 a 65,535
unsigned long Inteiro longo com sinal. 4 0 a 4,294,967,295
float Real. 4 3.4E-38 a 3.4E38
double Real com dobro de precisão. 8 1.7E-308 a 1.7E308
long double Real com presisão de 19 dígitos. 10 3.4E-4932 a 3.4E4932
void Nenhum valor. 0
45
Declaração de constantes e variáveis
  • Variáveis
  • tipo ltidentificadorgt
  • ex int x
  • Constantes
  • const tipo ltidentificadorgtltvalorgt
  • ex const int numero5
  • define ltidentificadorgt valor
  • ex define numero 5

46
Operadores Aritméticos
Operador Descrição
Soma
- Subtração
Multiplicação
/ Divisão (inteira ou real)
Resto da divisão inteira
- sinalização negativa
47
Operadores de incremento e decremento
  • Incremento
  • Decremento
  • --
  • Ex
  • int num1, num2
  • num15
  • num2 num1 //num16 num25
  • num15
  • num2 num1 //num16 num26
  • num15
  • num2 num1-- //num14 num25
  • num15
  • num2 -- num1 //num14 num24

48
Operadores Binários
  • Operam sobre os bits de um dado

Operador Operação
E
Ou
Ou-exclusivo
gtgt Deslocamento para a direita
ltlt Deslocamento para a esquerda
Não
49
Operadores Relacionais
Retornam 1 se a expressão for verdadeira, e 0 se
for falsa.
Operador Operação
Igual
! Diferente
lt Menor
gt Maior
lt Menor ou igual
gt Maior ou igual
50
Operadores Lógicos
  • E
  • ex (5 gt 7) ( (4/2) 2)
  • Ou
  • ex (5 gt 7) ( (4/2) 2)

51
Atribuição
  • Atribuição simples
  • ltvariávelgt valor
  • ex
  • int num12
  • Atribuição composta
  • ltvariávelgt ltopgt ltvalorgt
  • para ltopgt , -, , /, , ltlt, gtgt, , ,
  • ex
  • num1 1

52
Entrada e Saída
  • Entrada
  • scanf( lttipogt, ltvariávelgt)
  • Saída
  • printf(texto)
  • printf(texto lttipo1gt texto lttipoNgt texto,
    ltvariável 1gt,...,ltvariável Ngt)

53
tipos
Símbolo Significado.
d Inteiro.
u Inteiro sem sinal.
f Real.
e Real no formato exponencial.
g Escolher e ou f de acordo com o tamanho do dado.
c Caractere.
s Cadeia de caracteres.
o Número em octal (sem sinal).
x Número em hexadecimal (sem sinal).
54
Exercício
  1. Escreva um programa em C que leia um dado do tipo
    inteiro e em seguida escreva o dobro do seu
    valor.
  2. Escreva um algoritmo que leia três números e
    imprima o maior deles.
  3. Escreva um algoritmo que leia três números e os
    imprima em ordem crescente.
  4. Escreva um algoritmo que leia 10 números e
    imprima o maior deles.
  5. Escreva um algoritmo que leia uma certa
    quantidade de números e imprima o maior deles e
    quantas vezes o maior número foi lido. A
    quantidade de números a serem lidos deve ser
    fornecida pelo usuário. Assuma que o usuário
    sempre fornecerá um número positivo.
  6. Modifique o problema anterior de modo que caso o
    usuário digite um número negativo o programa peça
    novamente a quantidade de números e repita este
    procedimento até que o usuário forneça um número
    positivo.
  7. Modifique o problema anterior para permitir que o
    usuário possa em caso de erro ter três tentivas.
    Na terceira tentativa o programa deve terminar
    avisando ao usuário a razão da interrupção.
  8. Escreva um algoritmo que leia um número inteiro
    entre 100 e 999 e imprima na saída cada um dos
    algarismos que compõem o número.
  9. Uma empresa paga R10.00 por hora normal
    trabalhada e R 15.00 por hora extra. Escreva um
    programa que leia o total de horas normais e o
    total de horas extras trabalhadas por um
    empregado em um ano e calcule o salário anual
    deste trabalhador.
  10. Assuma que o trabalhador do exercício anterior
    deve pagar 10 de imposto se o seu salário anual
    for menor ou igual a R 12000.00. Caso o salário
    seja maior que este valor o imposto devido é
    igual a 10 sobre R 12000.00 mais 25 sobre o
    que passar de R 12000.00. Escreva um programa
    que calcule o imposto devido pelo trabalhador.
Write a Comment
User Comments (0)
About PowerShow.com