Programa - Bem-vindo ao Dziva Ngutu!
Transcrição
Programa - Bem-vindo ao Dziva Ngutu!
UNIVERSIDADE PEDAGÓGICA Programa da Cadeira......! • Linguagens de programação – – – – – – – Linguagens de Alto Nível Comparadas com Linguagens de Baixo Nível Linguagens de primeira geração Linguagens de Segunda Geração Linguagens de Terceira Geração Linguagens de quarta geração Novas direções das linguagens de programação Processadores de Linguagens • Processamento de linguagens – Interpretação – Compiladores • Origem e Introdução ao C – – – – – – – – – – – – – – – Sobre C Evolução de C Estrutura de um programa C Compilando um programa C Simples programa em C Conjunto de caracteres em C Palavras reservadas em C Hierarquia dos operadores Tipos de dados básicos Qualificadores usado com tipos de dados básicos Variáveis em C Declaração de tipo Função de saída, de entrada e especificadores de format Operadores aritméticos, unários, relacionais e lógicos Restrições em C. • Tipos de dados, operadores e declarações – Identificadores e palavras-chave – Constantes (constantes String, constantes numéricas, constantes de caracteres) • Estruturas de Decisão e de repetição, ramificações – – – – – Porque das estruturas de controle? Estruturas de desisao if, if else Estruturas de repeticao For, While e Do While Instruções break e continue Instrução switch e instrução goto Matrizes e Manuseio String • • • • • • • • • • • • • Introdução às matrizes Vantagens de matrizes Tipos de matrizes Declaração de matrizes Inicialização de matriz Acessando dados em matrizes Matrizes dentro da memória Matrizes multidimensionais Matrizes de caracteres Estouro de matrizes Variáveis String Leitura e escrita de strings Cadeia de manipulação de funções. Functions definidas pelo usuário • • • • • • • • • • Introdução às funçõe Vantagens de funções Declarando uma função Chamada de uma função Variáveis Passagem de argumentos para uma função Funções aninhadas Passando matrizes para funções Recursividade em funções Chamada por valor e chamada por referência. Ponteiros • • • • • • • • Introdução à ponteiros Variações de ponteiro Alocação dinâmica de memória Ponteiros e matrizes Ponteiros para ponteiros Funções que retornam ponteiros Matrizes bidimensionais e ponteiros Matriz de ponteiros. Gerenciamento de arquivo em C • Definir e abrir um arquivo • Fechar um arquivo • Operações de entrada e saida em arquivo • Tratamento de erros durante as Estruturas e Unions operações de entrada e saida • • • • • • • Acesso aleatório de arquivos. Definição da estruturas Inicialização de Estruturas Matrizes de estruturas Matrizes dentro de estruturas Estruturas e funções Unions. O que é um computador? Para que serve? • Um computador é uma coleção de Componentes que realizam operações lógicas e aritméticas sobre um grande volume de dados; • Computador é ferramenta de trabalho (ex. editores de textos, planilhas, sistemas de informação, etc). • Computador é mídia: serve como canal na comunicação humana (ex. FAX, Web, ICQ, apresentação multimídia, etc). O que é um computador? Para que serve? (Cont ...) • Dispositivo elétrico concebido para manipular dados com rapidez e precisão. • Recebe dados de entrada de forma automática e os processa de modo a obter informação de saída, com base num conjunto detalhado de instruções. Como funciona um computador? Organização Básica de um Computador Como funciona um computador? • É um dispositivo elétrico – Eletricidade 01010101010101010101010101010 Ex: a = 11011001 – Bit = Menor unidade da informática – Byte = 8 bits = uma palavra para o computador – – – – 1 Kilobyte ou Kbyte ou KB = 1024 bytes 1 Megabyte ou Mbyte ou MB = 1024 Kilobytes 1 Gigabyte ou Gbyte ou GB = 1024 Megabytes 1 Terabyte ou Tbyte ou TB = 1024 Gigabytes Gerações dos Microcomputadores • 1ª Geração = válvulas • 2ª Geração = Transistores • 3ª Geração = Circuitos Integrados e a Miniaturização • 1ª Geração = Válvulas – Eniac ocupava uma sala e pesava 30 toneladas. Consumia 150Kw para realizar 5000 cálculos por segundo • 2ª Geração = Transistores – Precisava de menos potência – 100 vezes menor – Não precisava aquecer – Início do uso comercial • 3ª Geração = Circuitos Integrados e a Miniaturização – Milhões de transistores integrados em um único transistor – Miniaturização, Início do uso pessoal – Surge a Linguagem de alto Nível • 4ª Geração – Computadores pessoais – Programação OO – Interligação de Sistemas através de Redes de Computadores de alta velocidade – Uso de supercomputadores para previsão de catástrofes, cálculos físicos, médicos e outras áreas – Internet e informação em tempo real; • 5ª Geração – Computador de Neurônios – Integração de todos os aparelhos de comunicação em um só aparelho – Acesso à internet via televisão Componentes de um Sistema Computacional • Hardware • Software • Usuário HARDWARE Dispositivos do Computador • Os dispositivos do computador se dividem em duas partes: – Dispositivos de Entrada – Dispositivos de Saída – Dispositivos de Entrada e Saida Dispositivos de Entrada Todo o dispositivo que permite a entrada de dados no computador; Ex: Teclado, Mouse, Scaner, Web Cam Dispositivos de Saída Todo o Dispositivo que permite a saída de dados ou informações processadas pelo computador; Ex: Monitor, caixa de som, impressora,plotter Dispositivos de Entrada e Saída Todo o Dispositivo que permite a entrada e saída de dados ou informações processadas pelo computador; Ex: Drives de Diskette, Pen-drive, Modem, gravadores de CD e DVD Software – Conjunto de instruções sequenciais destinado a orientar um sistema de computador na execução de passos. – Não é possível conceber um sistema de computador sem hardware, e este, por sua vez é inútil sem o software – Hardware = parte física do computador – Software = parte lógica do computador Software = Programa de Computador; Normalmente desenvolvidos em linguagem de alto nível; Utilizados nas mais diversas áreas. Classificação do software • • • • Sistemas Operacionais Linguagens de Programação Aplicativos Programas especializados Sistemas Operacionais É o básico para que um computador funcione • Ele gerencia o hardware e possibilita que outros programas possam ser executados no computador Ex: Windows, UNIX, OS2 Aplicativos Qualquer sistema ou programa que processe dados e gere informações como saída. Ex: Word, Sistema Contábil, um Site, gestor de projetos Programas especializados Sistemas especializados em uma determinada área Ex: Controle de tráfego aéreo, gestão de empresas... Linguagens de Programação Ambientes de desenvolvimento que são utilizados para a criação e modelagem de programas e sistemas. Pascal, JAVA, HTML, DELPHI, ASP • • • • • • • • • • • • • • • • • • • • • • • • • • • • interface type calculo = Class valor1 : real; valor2 : real; valor3 : real; valor4 : real; function media (valor:calculo):real; public resultado : integer; Function soma(var v1:integer;v2:integer):integer; Procedure CalculaValor(); private protected end; { calculo } procedure calculo.CalculaValor(); begin resultado:=form1.va1 + Form1.va2; end; function calculo.media(valor: calculo): real; begin result:=(valor.valor1+valor.valor2+valor.valor3+valor.valor4)/4; end; Function calculo.soma(var v1: integer; v2: integer):integer; begin result:=v1+v2; end; Algoritmos O que é algoritmo? Qual sua relação com programação de computadores? Algoritmo Conjunto de regras e operações bem definidas e ordenadas, destinadas à solução de um problema, ou de uma classe de problemas, em um número finito de etapas. – Programa Sequência completa de instruções a serem executadas por um computador De acordo com um algoritmo. Algoritmo e Programação • O algoritmo, do ponto de vista computacional, tem um papel fundamental por ser o elo de ligação entre dois mundos (real e computacional). • A atividade de programação começa com a construção do algoritmo. Algoritmo e Programação Algoritmo Algoritmo: trocar lâmpada • Passo 1: pegar a lâmpada nova. • Passo 2: pegar a escada. • Passo 3: posicionar a escada embaixo da lâmpada queimada. • Passo 4: subir na escada com a lâmpada • Passo 5: Retirar a lâmpada queimada. • Passo 6: Colocar a lâmpada nova. • Passo 7: Descer da escada. • Passo 8: Ligar o interruptor. • Passo 9: Guardar a escada. • Passo 10: Jogar a lâmpada velha no lixo. Algoritmo • Passo 1: Ir até o caixa eletrônico. • Passo 2: Colocar o cartão. • Passo 3: Digitar a senha. • Passo 4: Solicitar o saldo. • Passo 5: Se o saldo for maior igual à quantia desejada, tirar a quantia desejada; - Caso contrário tirar o valor do saldo. • Passo 6: Retirar dinheiro e cartão. • Passo 7: Sair do caixa eletrônico.. FORMAS DE REPRESENTAÇÃO Cont… Existem três formas de representação de algoritmos: • Fluxograma - Representação gráfica. • Pseudocódigo - Linguagem estruturado • Descrição Narrativa - Representação textual. FORMAS DE REPRESENTAÇÃO Cont… Fluxograma • A representação gráfica é mais concisa que a representação textual. • É necessário aprender a simbologia dos fluxogramas. Pseudocódigo • A transcrição para qualquer linguagem de programação é quase direta. • É necessário aprender as regras do pseudocódigo. Fluxograma. Representação gráfica por meio de símbolos geométricos, da solução algorítmica de um problema. Inicio Fim Calculo Cond ição Fluxo de dados Saida Pseudo-código • Pseudocódigo é uma forma genérica de escrever um algoritmo, utilizando uma linguagem simples sem necessidade de conhecer a sintaxe de nenhuma linguagem de programação. • É, como o nome indica, um pseudo-código e, portanto, não pode ser executado num sistema real • • • • • • Início – Indica o início de um bloco; Fim – Indica o final de um bloco; Programa – Define o nome do programa; Var – Lista de variáveis usadas; Leia – Lê um determinado dado do teclado; Escreva – Imprime um valor na tela. Exemplo de pseudocódigo Programa TESTE Var a, b,c: inteiro; Início Leia (a, b, c); Escreva (a,b,c); Fim Linguagem natural Controle de execução: Condição Uma instrução de decisão, também designada por instrução condicional ou instrução de selecção, permite tomar uma decisão quanto ao fluxo de execução entre dois ou mais caminhos de execução distintos, dependendo da resposta a uma pergunta /condição que é colocada. Representação da condição em pseudocódigo: Se (condição for verdadeira) <acção a executar se condição verdadeira> Caso Contrário < acção a executar se condição falsa> Fim Se Se (a>b) então Escreva “a é maior que b” Caso Contrário Escreva “b é maior que a” Fim Se Representação da condição em fluxograma Controlo da Execução - Repetição O ingrediente final necessário é a capacidade para realizar a repetição de uma ou várias instruções. A repetição pode ser por um determinado número de vezes ou enquanto uma determinada condição for verdadeira. Representação da repetição em pseudocódigo: Enquanto (condição verdadeira) <acção se condição verdadeira> Fim Enquanto Representação da repetição em fluxograma: Exemplo VARIÁVEIS Variável O computador possui uma área de armazenamento conhecida como memória. Todas as informações existentes no computador estão ou na memória primária ou na memória secundária. A memória do computador pode ser entendida como uma sequência finita de caixas, que num dado momento, guardam algum tipo de informação, como número, uma letra, uma palavra, uma frase etc., não importa, basta saber que lá sempre existe alguma informação. O computador, para poder trabalhar como alguma destas informações, precisa saber onde, na memória, o dado está localizado. Cada posição de memória, possui um endereço, ou seja, um número, que indica onde cada informação está localizada. Este número é representado através da notação hexadecimal. Endereço Físico 5010: B712 7010: 12EC 2040: 0004 Informação ‘ESTEC’ 2014 ‘U’ Observando, o endereçamento das posições de memória através de números hexadecimais é perfeitamente compreendido pela máquina, mas para nós humanos torna-se uma tarefa complicada. Pensando nisto, as linguagens de computador facilitaram o manuseio, por parte dos user, das posições de memória da máquina, permitindo que, ao invés de trabalhar diretamente com os números hexadecimais, fosse possível dar nomes diferentes a cada posição de memória. Esses nomes seriam de livre escolha do utilizador. Com este recurso, os utilizadores ficaram livres dos endereços físicos e passaram a trabalhar com endereços lógicos Endereço Físico Nome número letra Informação ‘ESTEC’ 12345 ‘U’ Os endereços lógicos são como caixas, que num dado instante guardam algum tipo de informação. Mas é importante saber que o conteúdo desta caixa não é algo fixo. Com isto quero dizer que o conteúdo de uma destas caixas ( endereço lógico ) podem variar, isto é podem sofrer alterações em seu conteúdo. Tendo este conceito em mente, a partir de agora iremos chamar de forma genérica, as caixas ou endereços lógicos, de variáveis. Desta forma podemos dizer que uma variável é uma posição de memória, representada por um Nome simbólico ( atribuído pelo utilizador ), a qual contém, num dado instante, uma informação. Formação de Variáveis Uma variável é formado por uma letra ou então por uma letra seguida de letras ou dígitos, em qualquer número Regras para a sua formação • Não é permitido o uso de espaços em branco ou de qualquer outro caractere, que não seja letra ou dígito Conteúdo de uma Variável Dados - Elementos conhecidos de um problema Informação - Um conjunto estruturado de dados, transmitido conhecimento As variáveis só podem armazenar valores de um mesmo tipo, de maneira que também são classificadas como sendo numéricas, lógicas e literais. Tipos de Variáveis Constantes Invariantes em todas as programa Variáveis Podem variar em todas as programa Tipos de Dados Em programação exige-se que no momento que se trabalha com variáveis, indiquemos o tipo de informação que ela pode conter Para isto, a linguagem Pascal possui definido alguns tipos que deverão ser usados quando declara-se variáveis. Algoritmo a) Inteiro b) Real e) Caracter d) Cadeia g) Lógica Pascal Descrição a) INTEGER: Representa números entre -32768 até +32767. ocupa 2 bytes na memória. b) REAL: Representa os números entre 2.9 x 10 -39 até 1.7 x 1038 . Ocupa 6 bytes na memória. e) CHAR: Representa um dos caracteres, da tabela ASCII. Ocupa 1 byte na memória. f) STRING: Conjunto de caracteres ( CHAR ). Ocupa de 1 a 255 bytes na memória. g) Valor lógico. Assuma somente dois valores: TRUE(Verdade) BOOLEAN: ou FALSE(Falso). ocupa 1 byte na memória. c) WORD: d) BYTE: h) Shor Int i) LongInt j) Single l) Double Números de 0 até 65535. Ocupa 2 bytes na memória. Números de 0 até 255. Ocupa 1 byte na memória. Representa os números entre -128 até 128 . Ocupa 1 bytes na memória. Representa os números entre - 2.147.483.648 até 2.147.483.648 . Ocupa 4 bytes na memória. Representa os números entre 1.5 x 10 -45 até 3.4 x 1038 . Ocupa 4 bytes na memória. Representa os números entre 5 x 10 -324 até 1.7 x 10308 . Ocupa 8 bytes na memória.