1 / 62

Construção de Algoritmos

Aquiles Burlamaqui UERN 2008.1 Aula 02. Construção de Algoritmos. Linguagem de Programação C. Flexibilidade Portabilidade Usada no desenvolvimento de: Unix Linguagem C, C++ Java Etc. Linguagem de Programação C. Programas em C geram programas executáveis.

Download Presentation

Construção de Algoritmos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Professor: Aquiles Burlamaqui Aquiles BurlamaquiUERN 2008.1 Aula 02 Construção de Algoritmos

  2. Linguagem de Programação C Flexibilidade Portabilidade Usada no desenvolvimento de: Unix Linguagem C, C++ Java Etc

  3. Linguagem de Programação C Programas em C geram programas executáveis. Mais veloz que outras linguagens de alto nível. Linguagem de relativo baixo nível, permite operações com bits, bytes, endereços de memórias.

  4. Linguagem de Programação C Instalação Windows Dev-C++ Turbo C++ Linux gcc

  5. Tipos de Dados Manipulação de informações na memória Instruções Dados Memória 1 célula = 1 byte = 8 bits 1 bit possui 2 estados: 0 e 1 (dígitos binários). 1 byte possui 28 = 256 estados possíveis.

  6. Tipos de Dados Tipos básicos podem ser: Numéricos; Inteiros Reais; Literais; Lógicos;

  7. Tipo de Dados Numéricos Inteiros: sem parte fracionária nem ponto; Ex: 86 0 234 -34 4324 Reais: com parte fracionária e ponto; Ex:85.3 -9.34 10.0 6.0 0.00

  8. Tipos de Dados Literais: Seqüências de caracteres contendo letras, dígitos e/ou símbolos especiais Também chamados de: “alfanuméricos” “cadeia de caracteres” “strings” Serão representados nos algoritmos entre aspas. Ex:“UERN” comprimento 4; “Construção de Algoritmos” comprimento ?; “29/04/80” comprimento ? “” comprimento ? “ “ comprimento ?

  9. Tipos de Dados Lógico Usados para representar dois únicos valores lógicos possíveis: verdadeiro e falso. Representados nos algoritmos como: .V. (verdadeiro) e .F. (falso).

  10. Armazenamento na Memória

  11. Variáveis Guardar dados Nome Tipo Informação Pseudocódigo <Tipo>:<Lista de Variáveis Ex:Inteiro: idade Real : media,n1,n2,n3,n4,mf Lógico : passou, flag Literal : letra

  12. 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;

  13. 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 <nome_da_constante> = <valor>; Ex: Constante pi = 3,14;

  14. 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

  15. Operadores Aritméticos OperadorTipoOperaçãoPrioridade + 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

  16. Operadores Aritméticos Vamos considerar alguns exemplos para mostrar como estas regras são aplicadas. Considere as seguintes variáveis: A=2.0 B=4.0 C=1.0 Vamos então analisar expressões com estas variáveis e seus resultados. A*B-C A*(B-C) B+A/C+5 (B+A)/(C+5)

  17. Operadores Aritméticos 1)5x3 + 7x2 – 3x – 1 Resp.: 5.0*x**3 + 7.0*x**2 – 3.0*x –1.0 2)x0 + v0t – 1 gt2 2 Resp.:xo + vo*t – 0.5*g*t**2

  18. Operadores Lógicos OperadorTipoOperação Prioridade .OU. binário disjunção 3 .E. binário conjunção 2 .NÃO. unário negação 1

  19. Operadores Relacionais OperadorComparação = igual <> diferente < menor <= menor ou igual > maior >= maior ou igual

  20. Operadores Literais Não há padronização para seus operadores. Vamos considerar apenas o operador de concatenação ( + ) . Exemplo: “sonha” + “dor” resulta “sonhador”

  21. 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.

  22. Instruções Primitivas Entrada Saída Atribuição

  23. Entrada Sintaxe : Leia ( < lista_de_variáveis > )‏ 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 )‏

  24. Saída Sintaxe : Escreva ( < lista_de_expressões > )‏ 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 = “, pi*r**2)‏ Escreva (“Area = “, x*y, “Perimetro = “, 2*(x + y))‏

  25. 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.

  26. Atribuição É a principal maneira de se armazenar uma informação numa variável. Sintaxe :< nome_da_variável >  < expressão > 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).

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

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

  29. 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)‏

  30. 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

  31. Se Sintaxe: Se ( < condição > ) então Se ( < condição > ) então < comando1 > < comando1 > senão Fim_se < comando2 > Fim_se

  32. Se Aninhados Algoritmo Max_min Real: a, b, c, max, min Início Escreva (“Digite tres numeros: “)‏ Leia (a, b, c)‏ Se ( a < b ) então Se ( b < c ) então min  a max  c senão max  b Se ( a < c ) então min  a senão min  c Fim_se Fim_se senão Se ( b > c ) então min  c max  a senão min  b Se ( a > c ) então max  a senão max  c Fim_se Fim_se Fim_se Escreva (“Maior numero = “, max)‏ Escreva (“Menor numero = “, min)‏ Fim

  33. Escolha...Caso Sintaxe: Escolha(<expressão>)‏ Caso(<condição1>)faça <comando1> Caso(<condição2>)faça <comando2> . . . Caso(<condiçãot>)faça <comandot> senão <comandok> Fim_escolha

  34. Escolha...Caso Algoritmo Calculadora Real: num1,num2 Literal[2]: 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,” =”, num1+num2)‏ 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(num2<>0)então Escreva(num1,op,num2,” =”,num1/ num2)‏ Senão Escreva(“Não existe divisão por zero.”)‏ Fim_se Senão Escreva(“Operador desconhecido.”)‏ Fim_escolha Fim

  35. Estrutura de Repetição Tipos Contados Para – Faça Condicionais ENQUANTO – FAÇA REPITA – ATÉ

  36. Para- Faça Sintaxe: Para <var> de <ini> até <fim> passo <inc> faça <comando> Fim_para

  37. Algoritmo Fatorial Inteiro: num,k,fat Início Escreva(“Digite um número:”)‏ Leia(num)‏ Se(num >= 0)então fat  1 Para k de 2 até num passo 1 faça fat  fat*k Fim_para Escreva(“Fatorial de”, num, “ igual a “ ,fat)‏ Senão Escreva(“Não existe fatorial de número negativo.”)‏ Fim_se Fim

  38. Enquanto - Faça Sintaxe: Enquanto (<expressão lógica>)faça <comando> Fim_enquanto

  39. Algoritmo MDC Inteiro: a, b Início Escreva (“Digite dois numeros inteiro positivos: “)‏ Leia (a,b)‏ Se ( a>0 .e. b>0 ) então Enquanto ( a< > b ) faça Se ( a > 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

  40. Repita - Até Sintaxe: Repita <comando> Até (<expressão lógica>)‏

  41. Algoritmo Divisores Inteiro: num, div Início Repita Escreva (“Digite um numero inteiro positivo: “)‏ Leia (num)‏ Até (num > 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 > num)‏ Fim

  42. Linguagem C

  43. 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

  44. Linguagem de Programação C Uso: Desenvolvimento de software de sistemas operacionais: Drivers; Kernel; Api; Etc. Desenvolvimento de sistemas embutidos; Etc.

  45. 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

  46. Estrutura básica de um programa em C /* Modelo de programa em C */ int main() { return(0); }

  47. 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 <stdio.h> int main() { printf(“Olá mundo!”); return(0); }

  48. Compilando um código em C Após escrever e salvar um código em c, vá para o terminal e digite: gcc <nome_do_arquivo.c> -o <nome_do_programa> Em seguida, digite no terminal: ./<nome_do_programa> Observe o resultado da saída no terminal.

  49. Comentários Por área selecionada /* - início da área de comentário <texto comentado> ... */ - fim da área Por linha // <linha comentada>

  50. 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

More Related