A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

INE5408 Estruturas de Dados Programação estruturada e noções básicas da linguagem C.

Apresentações semelhantes


Apresentação em tema: "INE5408 Estruturas de Dados Programação estruturada e noções básicas da linguagem C."— Transcrição da apresentação:

1 INE5408 Estruturas de Dados Programação estruturada e noções básicas da linguagem C

2 Programação Estruturada Programação Estruturada: inventada por Niklaus Wirth (Univ. de Zurique - década 1970) também chamada de “Programação sem GoTo”

3 Programação com GoTo (2ª geração de linguagens de programação Exemplo 1: FORTRAN C AREA OF A TRIANGLE - HERON'S FORMULA C INPUT - CARD READER UNIT 5, INTEGER INPUT, ONE BLANK CARD FOR END-OF-DATA C OUTPUT - LINE PRINTER UNIT 6, REAL OUTPUT C INPUT ERROR DISPAY ERROR MESSAGE ON OUTPUT 501 FORMAT(3I5) 601 FORMAT(4H A=,I5,5H B=,I5,5H C=,I5,8H AREA=,F10.2,12HSQUARE UNITS) 602 FORMAT(10HNORMAL END) 603 FORMAT(23HINPUT ERROR, ZERO VALUE) INTEGER A,B,C 10 READ(5,501) A,B,C IF(A.EQ.0.AND. B.EQ.0.AND. C.EQ.0) GO TO 50 IF(A.EQ.0.OR. B.EQ.0.OR. C.EQ.0) GO TO 90 S = (A + B + C) / 2.0 AREA = SQRT( S * (S - A) * (S - B) * (S - C)) WRITE(6,601) A,B,C,AREA GO TO 10 50 WRITE(6,602) STOP 90 WRITE(6,603) STOP END

4 Programação com GoTo (2ª geração de linguagens de programação Exemplo 2: COBOL 000100 ID DIVISION. 000200 PROGRAM-ID. ACCEPT1. 000300 DATA DIVISION. 000400 WORKING-STORAGE SECTION. 000500 01 WS-FIRST-NUMBER PIC 9(3). 000600 01 WS-SECOND-NUMBER PIC 9(3). 000700 01 WS-TOTAL PIC ZZZ9. 000800* 000900 PROCEDURE DIVISION. 001000 0000-MAINLINE. 001100 DISPLAY 'ENTER A NUMBER: '. 001200 ACCEPT WS-FIRST-NUMBER. 001300* 001400 DISPLAY 'ANOTHER NUMBER: '. 001500 ACCEPT WS-SECOND-NUMBER. 001600* 001700 COMPUTE WS-TOTAL = WS-FIRST-NUMBER + WS-SECOND-NUMBER. 001800 DISPLAY 'THE TOTAL IS: ', WS-TOTAL. 001900 STOP RUN.

5 Programação Estruturada Baseada na expressão de algoritmos única e exclusivamente através de 4 grupos de estruturas de controle: –bloco: comando ou conjunto de comandos sempre executados em seqüência. Ex.: (Pascal): begin … end; –estrutura condicional: SE-ENTÃO-SENÃO Ex.: (Pascal): if (cond) then bloco1 else bloco2; –estrutura de repetição: ENQUANTO COND FAÇA BLOCO Ex.: (Pascal): while (cond) do bloco; –estrutura de abstração: procedimento ou função. Agrupamento de comandos com um nome e eventualmente também parâmetros nomeados.

6 Programação Estruturada Para nós parece um retrocesso. Na época: –fazia-se programas completamente ininteligíveis; –foi um grande avanço no sentido de: produzir código mais fácil de se manter e entender; produzir código com mais qualidade. A Programação Estruturada definiu: –uma nova disciplina na programação; –um novo grupo de linguagens de programação, a 3ª Geração. Exemplos: Pascal, Algol, C, PL/1 Ainda muito utilizada hoje em dia: –Sistemas Operacionais; –Análise Numérica/Computação Gráfica; –Redes de Computadores.

7 Programação Estruturada Não existem objetos: –dados e seu comportamento são considerados em separado; –unificar uma estrutura de dados com as operações definidas sobre a mesma é função do programador. Existem variáveis e tipos (dados): –variáveis podem ser globais ou locais (escopo); –tipos podem ser primitivos, derivados ou estruturados. Existem procedimentos e funções (comportamento): –conjunto de comandos referenciados por um nome; –um procedimento é especial e se chama Programa Principal.

8 Programação Estruturada Modelamos as estruturas de dados propriamente ditas como um tipo estruturado: –estrutura é uma coleção de variáveis referenciada por um mesmo nome; –imagine um objeto sem métodos; –chamamos a cada elemento desta coleção de campo. Algoritmicamente: tipo Empregado { caracter nome[100]; caracter cargo[20]; caracter endereço[200]; inteiro salário; }; Variáveis Empregado chefe; Campos Variável global

9 Programação Estruturada Modelamos as operações sobre uma estrutura de dados como procedimentos ou funções: –variáveis globais valem dentro de qualquer função ( escopo global ). Antes de vermos alocação dinâmica de memória e ponteiros vamos trabalhar com funções sem alguns parâmetros. Algoritmicamente: Variáveis Empregado chefe; Procedimento baixaSalário (inteiro porcentagem)‏ variáveis real auxiliar; início auxiliar <- chefe.salário * (porcentagem / 100); chefe.salário <- chefe.salário - auxiliar; fim;

10 A Linguagem C

11 Declaração de Variáveis Podem ter qualquer nome, desde que sejam iniciadas com letra ou sublinhado (_); int _numero; Não podem ter nomes iguais aos de funções definidas pelo programador, nem palavras reservadas da linguagem, tampouco nomes utilizados nas bibliotecas do C; int main; int while; int char; O C é Case Sensitive, ou seja, int numero é diferente de int Numero; Pode ter nomes de até 32 caracteres; Existem 5 tipos básicos de variáveis: char, int, float, double e void;

12 Declaração de Constantes Podemos utilizar mais de uma forma para definir constantes no C, a saber: #define constante = 100 ou const int constante = 100;

13 Declaração de Vetores e Matrizes int Vetor[5]; // declara um vetor de 5 posições, indices 0 a 4 int Matriz[5][3]; // declara uma matriz de 5 linhas e 3 colunas É possível utilizar constantes ou mesmo variávei para definir o tamanho de um vetor: #define TAM_MAX 10 // constante TAM_MAX = 10 double VetReais[TAM_MAX];

14 Decl. Vetores e Matrizes (Cont.)‏ int tamanho = 10; double Vetor [tamanho]; Observe que a reserva de espaço em memória para a matriz Vetor é feita no momento da declaração. Se a variável tamanho tiver seu valor alterado no decorrer do programa, isto NÃO significa que Vetor terá o tamanho alterado.

15 Modelagem de tipos #define MAXLISTA 100 typedef struct { char nome[31]; char fone[11]; } tAgenda; typedef struct { tAgenda dados[MAXLISTA]; int ultimo; } tLista; Acessando: x = aLista.dados[10].fone;

16 Declaração de Funções As funções no C são nomeadas da seguinte forma geral: tipo_de_retorno nome_da_função (declaração_de_parâmetros) { corpo_da_função } Utilizam para o retorno da função a palavra reservada return; int funcao_teste (int a, int b)‏ { int resultado; resultado = a + b; return (resultado); }

17 Função Main Esta é a primeira função a ser executada quando o programa é executado. A palavra “void” indica que seu retorno é vazio. #include /* biblioteca standart I/O */ void main () { int Dias; /* Declaracao de variáveis float Anos; printf ("Entre com o número de dias: "); /* Entrada de Dados */ scanf ("%d",&Dias); Anos=Dias/365.25; /* Conversao Dias->Anos */ printf ("\n\n%d dias equivalem a %f anos.\n",Dias,Anos); }

18 Operadores Aritméticos e de atribuição: + Soma inteira e ponto flutuante - Subtração ou troca de sinal * Multiplicação / Divisão % Resto de divisão ++ Incremento -- Decremento Lógicos e relacionais: && = and || = or ! = not, ou não == igualdade (dois sinais de igual)‏

19 Estruturas de Controle de Fluxo SE (if)‏ if(condicao) { bloco de codigo; } else { bloco de codigo 2; }

20 Estruturas de Controle de Fluxo (Cont.)‏ switch (variável)‏ { case constante_1: declaração_1; break; case constante_n: declaração_n; break; default declaração_default; }

21 Estruturas de Controle de Fluxo (Cont.)‏ for (inicialização;condição;incremento) declaração; int z = 0; for (z=0;z < 30; z++) { printf(“\nO Valor de Z é %d”,\); } while (condição) declaração; int z = 0; while (z < 30) { printf(“\nO Valor de Z é %d”,\); z++; }

22 Estruturas de Controle de Fluxo (Cont.)‏ while (condição) declaração; int z = 0; while (z < 30) { printf(“\nO Valor de Z é %d”,\); z++; }

23 Formatação de saídas \n Quebra de linha (Pula para a próxima linha)‏ \r Retrocede o cursor para o início da linha \t Insere uma tabulação no texto \b Retrocede o cursor uma posição \“ Imprime a aspas \\ Imprime uma barra invertida Ex: printf(“\nEste é um \nExemplo”);

24 Formatação de saídas (Cont.) %i inteiros com sinais (base decimal)‏ %d inteiros com sinais (base decimal)‏ %f ponto flutuante %s cadeia de caracteres (string)‏ %u inteiros sem sinal %x imprime um número na base hexadecimal. As letras serão minúsculas. %X imprime um número na base hexadecimal. As letras serão maiúsculas. %p Apresenta endereço de memória. Ex: printf(“\nEste é um \nExemplo que imprime o número %d”, var_numero);

25 Documentação de código http://www.bgsu.edu/departments/compsci/docs/documentation.html


Carregar ppt "INE5408 Estruturas de Dados Programação estruturada e noções básicas da linguagem C."

Apresentações semelhantes


Anúncios Google