1 conceitos iniciais

66
FALCULDADE PITÁGORAS ALGORITMOS E PROGRAMAÇÃO CONCEITOS INICIAIS PROFESSOR: EDILSON LIMA UNIDADE 1

Upload: henrique-camargos

Post on 24-Jul-2015

187 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 CONCEITOS INICIAIS

FALCULDADE PITÁGORAS

ALGORITMOS E PROGRAMAÇÃO

CONCEITOS INICIAIS

PROFESSOR: EDILSON LIMA

UNIDADE

1

Page 2: 1 CONCEITOS INICIAIS

1 CONCEITOS INICIAIS

1.1 Definição de algoritmos

1.2 Formas de representação

1.3 Tipos de dados, variáveis e constantes

1.4 Instruções primitivas

ROTEIRO

PROFESSOR: EDILSON LIMA 02/66

ROTEIRO

Page 3: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 03/66

1 CONCEITOS INICIAIS

Page 4: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 04/66

1 CONCEITOS INICIAIS

enquanto “existe um quadrado livre e não tenha vencido (ou perdido) o jogo”

“espere a jogada do oponente, continue depois”;

se “existe um quadrado livre” então

se “o centro está livre” então

“jogue no centro”;

senão

se “o oponente tem dois quadrados quaisquer em linha com o terceiro desoculpado” então

“jogue nesse quadrado desocupado”;

senão

se “há algum canto livre” então

jogue nesse canto;

fim se;

fim se;

fim se;

fim se;

fim enquanto;

Page 5: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 05/66

1 CONCEITOS INICIAIS

Eu tenho que atravessar um rio de barco mais só posso levar um de cada vez,de um jeito que a raposa não fique só com a galinha e tão pouco a galinha com o saco de milho.Se não a raposa come a galinha ou a galinha come o saco de milho.

Page 6: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 06/66

1.1 Definição de algoritmos

ALGORITMOS• É um conjunto de instruções ou comandos que, quando executados , levam a um conjunto finito de ações.• É um conjunto ordenado de instruções que quando seguidas desempenham uma tarefa especifica.

Programas são formulações concretas de algoritmos abstratos, baseados em representações e estruturas específicas de dados.

A formulação de um algoritmo geralmente consiste em um texto contendo comandos (instruções) que devem ser executados numa ordem prescrita.

Page 7: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 07/66

1.1 Definição de algoritmos

A grande dificuldade na concepção e no entendimento de algoritmos é o problema do relacionamento desses aspectos, ou seja: como entender (“visualizar”) as estruturas dinâmicas das possíveis execuções do algoritmo a partir da estrutura estática do texto do algoritmo.

Qual é o padrão de comportamento utilizado para gerar uma sequência?

1, 5, 9, 13, 17, 21, 25?

Page 8: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 08/66

1.1 Definição de algoritmos

Um algoritmo é a descrição de um padrão de comportamento, expressado em termos de um repertório bem definido e finito de ações “primitivas”, das quais damos por certo que elas podem ser executadas.

Um algoritmo é uma norma executável que geralmente está associada à resolução de um certo tipo de problema.

Um algoritmo deve ser determinístico, isto é, dadas as mesmas condições iniciais deve produzir, depois de executado, os mesmos resultados.

Criar um algoritmo para arrumar livros na biblioteca.

Page 9: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 09/66

1.1 Definição de algoritmos

Um algoritmo deve ser determinístico, isto é, dadas as mesmas condições iniciais deve produzir, depois de executado, os mesmos resultados.

Observação:

O símbolo de sequenciamento ‘;’ (ponto e vírgula) representa a mais simples das estruturas de (fluxo de) controle. O símbolo possui duas funções:

Separar um comando de outro; Indicar a sequência que os comandos devem ser

executados, conforme eles sejam escrito.

Page 10: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 10/66

1.1 Definição de algoritmos

PROGRAMAS E ESTRUTURAS DE DADOS

Uma linguagem de programação é uma técnica de notação para programar, com a intenção de servir de veículo para:

a)Expressão de raciocínio algoritmo.b)Execução automática de um algoritmo por um computador.

PROGRAMAÇÃO ESTRUTURADA

Facilitar a escrita dos programas;Facilitar a leitura (o entendimento) dos programas;Permitir a verificação a priori dos programas;Facilitar a manutenção e modificação dos programas.

Page 11: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 11/66

1.1 Definição de algoritmos

A idéia de programação estruturada é reduzir a complexidade em três níveis:

a)Desenvolvimento do programa em diferentes fases por refinamento sucessivo (desenvolvimento top-down);b)Decomposição do programa total em módulos funcionais, organizados de preferência num sistema hierárquico;c)Usando dentro de cada módulo só um número muito limitado de estruturas básicas de fluxo de controle.

Page 12: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 12/66

1.1 Definição de algoritmos

1. Desenvolvimento Top-Down;2. Modularização;3. Estrutura de Controle (sequência simples, comando

condicional, comando repetitivo);4. Motivação: Problemas na Produção de Softaware;a) Confiabilidade X Complexidade;b) Manutenibilidade;c) Importância da Documentação;d) Fluxo de Controle em Algoritmos.

A seguir um exemplo utilizando sequência, alternativa, indentação e comentários.

Page 13: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 13/66

1.1 Definição de algoritmos

se a > 15 então //(a > 15) x := x*4; y := y+3;senão se a > 10 então //(10 < a ≤15) x := x * 3; x := y + 2; senão se a > 5 então //(5 < a ≤10) x := x * 2; x := y + 1; senão //(a ≤5) x := 0; x := 0; fim se; fim se;fim se;

Page 14: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 14/66

1.2 Formas de representação

Existem diversas formas de representação de algoritmos, mas não há um consenso com relação à melhor delas.

Dentre as formas de representação de algoritmos mais conhecidas podemos citar:

1.DESCRIÇÃO NARRATIVA: Nesta forma de representação os algoritmos são expressos diretamente em linguagem natural.Exemplo:Cálculo da média de um aluno:Obter as suas 2 notas de provasCalcular a média aritméticaSe a média for maior que 7,o aluno foi aprovado,senão ele foi reprovado

Page 15: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 15/66

1.2 Formas de representação

2. FLUXOGRAMA CONVENCIONAL: É uma representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintos. Tal propriedade facilita o entendimento das idéias contidas nos algoritmos e justifica sua popularidade.

Esta forma é aproximadamente intermediária à descrição narrativa e ao pseudocódigo (subitem seguinte), pois é menos imprecisa que a primeira e, no entanto, não se preocupa com detalhes de implementação do programa, como o tipo das variáveis usadas.

Neste tipo de algoritmo são utilizado figuras geométricas para representar operações de saída de dados realizadas em dispositivos distintos, a seguir alguns exemplos:

Page 16: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 16/66

1.2 Formas de representação

Figura 1: Principais formas geométricas usadas em fluxogramas

Page 17: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 17/66

1.2 Formas de representação

Figura 2: Principais formas geométricas usadas em fluxogramas

Exemplo de cálculo da média de um aluno soba forma de um fluxograma.

Page 18: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 18/66

1.2 Formas de representação

3. PSEUDOCÓDIGO: essa representação de algoritmos é rica em detalhes, como a definição dos tipos das variáveis usadas no algoritmo, funções, procedimento, vetores, matrizes e outros e por assemelhar-se bastante à forma em que os programas são escritos, encontra muita aceitação. Esta representação é suficientemente geral para permitir a tradução de um algoritmo nela representado para uma linguagem de programação específica seja praticamente direta.

A forma geral da representação de um algoritmo na forma de pseudocódigo é a seguinte:

Algoritmo <nome_do_algoritmo> <declaração_de_variáveis> <subalgoritmos>Início <corpo do algoritmo>Fim

Page 19: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 19/66

1.2 Formas de representação

Algoritmo é uma palavra que indica o início da definição de um algoritmo em forma de pseudocódigo.

<nome_do_algoritmo> é um nome simbólico dado ao algoritmo com a finalidade de distingui-los dos demais.

<declaração_de_variáveis> consiste em uma porção opcional onde são declaradas as variáveis globais usadas no algoritmo principal e, eventualmente, nos subalgoritmos.

<subalgoritmos> consiste de uma porção opcional do pseudocódigo onde são definidos os subalgoritmos.

Início e Fim são respectivamente as palavras que delimitam o início e o término do conjunto de instruções do corpo do algoritmo.

Page 20: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 20/66

1.2 Formas de representação

Exemplo:

Algoritmo Calculo_Mediavar N1, N2, MEDIA: real;início leia N1, N2; MEDIA ← (N1 + N2) / 2; se MEDIA >= 7 então escreva “Aprovado”; se não escreva “Reprovado”; fim se;fim.

Page 21: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 21/66

1.3 Tipos de dados, variáveis e constantes

Tipos de dados

Os dados armazenados ou processados em um computador podem ser classificados de acordo com o tipo de informação neles contida. Para cada classificação, temos um agrupamento de bits responsável pela representação do dado.

•As instruções, que comandam o funcionamento da máquina e determinam a maneira como devem ser tratados os dados. As instruções são específicas para cada modelo de computador, pois são funções do tipo particular de processador utilizado em sua implementação.

•Os dados propriamente ditos, que correspondem à porção das informações a serem processadas pelo computador.

Page 22: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 22/66

1.3 Tipos de dados, variáveis e constantes

Variáveis

Uma das características mais poderosas de uma linguagem de programação é a habilidade de manipular variáveis. Uma variável é um nome que se refere a um valor.

Os programadores geralmente escolhem nomes significativos para suas variáveis, pois os nomes documentam para o que a variável é usada.

Page 23: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 23/66

1.3 Tipos de dados, variáveis e constantes

Tipos de dados

Os computadores são ferramentas que funcionam basicamente em função de dados que são lidos, processados e um resultado é apresentado. Para ser capaz de armazenar informações, o computador é projetado com a estrutura de receber dados de formatos de acordo com a realidade do mundo real. Como exemplo, é possível informar um conjunto de nomes para serem ordenados, ou receber vários números inteiros e obter a média desses valores, bem como encontrar dentro de uma quantidade de alturas de atletas, aquela que é a maior.

Para oferecer a possibilidade de manipular estes diferentes formatos de dados, a linguagem C fornece um conjunto básico de tipos de dados. Nesta seção serão apresentados os cinco tipos básicos da linguagem C (char, double, float, int e void) e seus modificadores de tipo (signed, unsigned, long e short).

Page 24: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 24/66

1.3 Tipos de dados, variáveis e constantes

Tipos inteiros

São considerados inteiros aqueles valores numéricos positivos ou negativos. Este tipo de dados pode ser usado por meio dos identificadores:

int, pode possuir 16 bits, 32 bits ou 64 bits;

short int, deve possuir tamanho de no mínimo 16 bits e não pode ser maior que int;

long int, deve possuir tamanho mínimo de 32 bits;

long long int, deve possuir tamanho mínimo de 64 bits.

Page 25: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA 25/66

1.3 Tipos de dados, variáveis e constantes

Tipos reais

São considerados reais os valores numéricos positivos e negativos sendonúmeros fracionários ou inteiros. Este tipo de dados pode ser usado pormeio dos identificadores:

float define um número de ponto flutuante com seis dígitos decimais de precisão absoluta;

double representa números de ponto flutuante com quinze dígitos decimais de precisão absoluta; e

long double suporta um número de ponto flutuante com quinze dígitos decimais e precisão absoluta.

Page 26: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.3 Tipos de dados, variáveis e constantes

Tipos caracteres

Caracteres ou sequências de caracteres (strings) são formados por letras,números e símbolos especiais, representando dados alfanuméricos.

Na linguagem C, por exemplo permite o uso de dados alfanumérico de duas formas:• um caractere delimitado por apóstrofos: ‘x’• uma sequência de caracteres delimitadas por aspas: “x”

Tipos lógicos

Os dados do tipo lógico podem assumir somente dois valores:

Verdadeiro Falso

true false

1 0

26/66

Page 27: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.3 Tipos de dados, variáveis e constantes

Nomenclatura, declaração e inicialização de variáveis

Variável é um local onde se pode colocar qualquer valor do conjunto de valores possíveis do tipo básico associado.

Toda variável possui um nome que tem a função de diferenciá-la das demais. Cada linguagem de programação estabelece suas próprias regras de formação de nomes de variáveis. Adotaremos nesta apostila as seguintes regras:• um nome de variável deve necessariamente começar com uma letra;• um nome de variável não deve conter nenhum símbolo especial exceto a sublinha (_).

27/66

Page 28: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.3 Tipos de dados, variáveis e constantes

Nomenclatura, declaração e inicialização de variáveis

Todas as variáveis utilizadas em algoritmos devem ser definidas antes de serem utilizadas. Convenção para desenvolvimento dos algoritmos:

• Todas as variáveis utilizadas em algoritmos serão definidas no início do mesmo, por meio de um comando de uma das formas seguintes:

VAR <nome_da_variável> : <tipo_da_variável>VAR <lista_de_variáveis> : <tipo_das_variáveis>

• a palavra-chave VAR deverá estar presente sempre e será utilizada uma única vez na definição de um conjunto de uma ou mais variáveis;

•numa mesma linha poderão ser definidas uma ou mais variáveis do mesmo tipo. Para tal, deve-se separar os nomes das mesmas por vírgulas;

• variáveis de tipos diferentes devem ser declaradas em linhas diferentes.

28/66

Page 29: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.3 Tipos de dados, variáveis e constantes

Nomenclatura, declaração e inicialização de variáveis

Exemplo de definição de variáveis:

VAR NOME : literal[10]IDADE : inteiroSALARIO : realTEM_FILHOS : lógico

29/66

Page 30: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.3 Tipos de dados, variáveis e constantes

Vantagens de utilização de constante

Constantes se diferem das variáveis pelo fato destas armazenarem valorestemporários. Quer dizer, uma variável é capaz de armazenar um único valor num dado instante de tempo, porém este conteúdo pode ser alterado no decorrer da execução do programa. Já uma constante, ao ser declarada sempre armazenará o mesmo valor, não sendo permitido alterar este valor.

As constantes em C pode ser declaradas de qualquer um dos tipos de dados básicos e pode ser explícita ou implícita. Explícita quando o valor é usado diretamente numa instrução, como em

RESPOSTA = VALOR + 2.43;

30/66

Page 31: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Expressões

O conceito de expressão em termos computacionais está intimamente ligado ao conceito de expressão (ou fórmula) matemática, onde um conjunto de variáveis e constantes numéricas relacionam-se por meio de operadores aritméticos compondo uma fórmula que, uma vez avaliada, resulta num valor.

Por exemplo, a fórmula de cálculo da área do triângulo é dada por:AREA = 0.5 x B x H

31/66

Page 32: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Esta fórmula utiliza três variáveis: B e H, que contêm as dimensões do triângulo, e AREA, onde é guardado o valor calculado (resultado da avaliação da expressão). Há, também, uma constante (0.5) e o operador de multiplicação (x), que aparece duas vezes na expressão.O conceito de expressão aplicado à computação assume uma conotação mais ampla: uma expressão é uma combinação de variáveis, constantes e operadores, e que, uma vez avaliada, resulta num valor.

Operadores

são elementos funcionais que atuam sobre operandos e produzem um determinado resultado. Por exemplo, a expressão 3 + 2 relaciona dois operandos (os números 3 e 2) por meio do operador (+) que representa a operação de adição.Podem ser classificados em:• binários, quando atuam sobre dois operandos. Ex.: os operadores das operações aritméticas básicas (soma, subtração, multiplicação e divisão);

32/66

Page 33: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

unários, quando atuam sobre um único operando. Ex.: o sinal de (-) na frente de um número, cuja função é inverter seu sinal.

Outra classificação dos operadores é feita considerando-se o tipo de dado de seus operandos e do valor resultante de sua avaliação. Segundo esta classificação, os operadores dividem-se em aritméticos, lógicos e literais. Esta divisão está diretamente relacionada com o tipo de expressão onde aparecem os operadores.

Expressões Aritméticas

são aquelas cujo resultado da avaliação é do tipo numérico, seja ele inteiro ou real. Somente o uso de operadores aritméticos e variáveis numéricas é permitido em expressões deste tipo.

33/66

Page 34: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Operador Ação

+ Soma (inteira e ponto flutuante)

- Subtração ou troca de sinal (inteira e ponto flutuante)

* Multiplicação (inteira e ponto flutuante)

/ Divisão (inteira e ponto flutuante)

% Resto de divisão (de inteiros)

++ Incremento (inteiro e ponto flutuante)

-- Decremento (inteiro e ponto flutuante)

Expressões Aritméticas

34/66

Page 35: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Operador Ação

|| OU ou (or)

&& E E (and)

!= NÃO não (not)

Expressões Lógicas e suas relações de prioridade

Tabela verdade

A B NÃO A NÃO B A ou B A e B

F F V V F F

F V V F V F

V F F V V F

V V F F V V

35/66

Page 36: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Expressão original Expressão Equivalente

x = x + k; x += k;

x = x – k; x -= k;

x = x * k; x *= k

x = x / k; x /= k;

Observações

O operador lógico NÃO sempre inverte o valor de seu operando. Ex.: NÃO V = F; e NÃO F = V;

Para que a operação lógica OU tenha resultado verdadeiro basta que um de seus operando seja verdadeiro;

36/66

Page 37: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Operadores relacionais

operador operação

= igual

<> diferente

< menor

<= menor que

> maior

>= maior que

37/66

Page 38: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Indentação

É um termo usado na área de programação para indicar que um código-fonte está organizado, facilitando assim sua leitura e entendimento. São pequenas regras que contribuem para que seu código fique legível.

Instrução Primitiva

são os comandos básicos que efetuam tarefas essenciais para a operação dos computadores, como entrada e saída de dados (comunicação com o usuário e com os dispositivos periféricos), e movimentação dos mesmos na memória.

Dispositivo de entrada é o meio pelo qual as informações (mais especificamente os dados) são transferidas pelo usuário. Os exemplos mais comuns são: o teclado, o cartão perfurado (já obsoleto), as fitas e os discos magnéticos, entre outros;

38/66

Page 39: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Dispositivo de saída é o meio pelo qual as informações (geralmente, os resultados da execução de um programa) são transferidas pelo computador ao usuário ou aos níveis secundários de memória. Exemplos: monitor de vídeo, impressora, fitas e discos magnéticos, entre outros;

Sintaxe é a forma como os comandos devem ser escritos, a fim de que possam ser entendidos pelo tradutor de programas. A violação das regras sintáticas é considerada um erro sujeito à pena do não-reconhecimento do comando por parte do tradutor;

Semântica é o significado, ou seja, o conjunto de ações que serão exercidas pelo computador durante a execução do referido comando.

39/66

Page 40: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Código Fonte

É o conjunto de palavras ou símbolos escritos de forma ordenada, contendo instruções em uma das linguagens de programação existentes, de maneira lógica.

São as linhas de programação que formam um software em sua forma original. Inicialmente, um programador "escreve" o programa em uma certa linguagem no nosso casso linguagem C.Resumindo é uma linguagem que o programador entenda (linguagem humana).

Para converter essa linguagem é uma linguagem que o computador entenda (linguagem de máquina) usamos o compilador que transforma código fonte em linguagem de máquina.comando.

40/66

Page 41: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Compilador

A compilação consiste na tradução do texto em código fonte (no nosso caso, a linguagem de programação C) para um código que o computador possa ler (Código executável ou linguagem de máquina), constituição essa que nós normalmente não conhecemos.

Um compilador é um programa de sistema que traduz um programa descrito em uma linguagem de alto nível(código fonte) para um programa equivalente em código de máquina para um processador. Em geral, um compilador não produz diretamente o código de máquina mas sim um programa em linguagem simbólica (linguagem C) semanticamente equivalente ao programa em linguagem de alto nível. O programa em linguagem simbólica é então traduzido para o programa em linguagem de máquina através do compilador

41/66

Page 42: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Código executável (linguagem de máquina)

Um executável ou arquivo executável, em informática, é um arquivo em que seu conteúdo deve ser interpretado como um programa por um computador. Normalmente, eles possuem a representação binária das instruções de máquina de um processador específico, mas podem conter também uma forma intermediária que podem ser necessários serviços de um interpretador para executar.

Hoje em dia, a distinção entre um programa na sua forma original (em linguagem humana) e em sua forma executável (em linguagem de máquina) está se tornando menos distinta, já que o ato de transformar a forma original no formato máquina (por compilação) ou a interpretação pode ser feito de modo implícito.

42/66

Page 43: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Código executável (linguagem de máquina)

Um executável ou arquivo executável, em informática, é um arquivo em que seu conteúdo deve ser interpretado como um programa por um computador. Normalmente, eles possuem a representação binária das instruções de máquina de um processador específico, mas podem conter também uma forma intermediária que podem ser necessários serviços de um interpretador para executar.

Hoje em dia, a distinção entre um programa na sua forma original (em linguagem humana) e em sua forma executável (em linguagem de máquina) está se tornando menos distinta, já que o ato de transformar a forma original no formato máquina (por compilação) ou a interpretação pode ser feito de modo implícito.

43/66

Page 44: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Interpretador

O interpretador ao contrário do compilador roda o código-fonte escrito como sendo o código objeto, ele traduz o programa linha a linha, o programa vai sendo utilizado na medida em que vai sendo traduzido. Cada execução do programa precisa ser novamente traduzido e interpretado.

O interpretador analisa sintaticamente e semanticamente o código, se estas duas etapas forem realizadas e executadas de forma correta o código está pronto para funcionar.  

44/66

Page 45: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

45/66

Page 46: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Atribuição de valores e variáveis

atribuição, é a principal maneira de se armazenar uma informação numa variável. Sua sintaxe é:<nome_de_variável> ← <expressão>

46/66

Page 47: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Leitura (entrada) de dados

Sua sintaxe é:Leia <lista_de_variáveis>

Em algoritmo Leia será tratada como uma palavra reservada e não mais poderá ser usada como nome de variável em algoritmos. A lista_de_variáveis é um conjunto de um ou mais nomes de variáveis, separados por vírgulas.

A semântica da instrução de entrada (ou leitura) de dados é, de certa forma, inversa à da instrução de escrita: 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_de_variáveis.

47/66

Page 48: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

48/66

Page 49: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Escreva (saída) de dados

meio pelo qual informações são colocadas nos dispositivos de saída, para que o usuário possa visualizá-las.

Há duas sintaxes possíveis para esta instrução:Escreva <lista de variáveis>ouEscreva <literal>

Escreva em algoritmo é considerada uma palavra reservada e não mais poderá ser utilizada como nome de variável e sim como um comando de saída de dados.

Uma lista_de_variáveis é um conjunto de nomes de variáveis separados por vírgulas. Um literal é simplesmente um dado do tipo literal delimitado por aspas.

49/66

Page 50: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.4 Instruções primitivas

Leitura (entrada) de dados

50/66

Page 51: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.5 Exemplos de Algoritmos

inicio inteiro: MAIOR, //conterá o maior valor MENOR, //conterá o menor valor VALOR; //valor lido leia (VALOR); MAIOR <- VALOR; MENOR <- VALOR; enquanto VALOR <> 0 faça //admintindo que o 0(zero) é o ultimo valor se VALOR > MAIOR então MAIOR <- VALOR; senão se VALOR < MENOR então MENOR <- VALOR; fim se; fim se; leia (VALOR); fim enquanto; imprima (MAIOR, MENOR);fim.

51/66

Page 52: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.6 Linguagem C

A linguagem C é uma linguagem simbólica de fácil entendimento, que possui uma sintaxe bastante estruturada e flexível, tornando sua programação bem simplificada.

É case sensitive, isto quer dizer que faz diferenças entre maiúsculas e minúsculas. Exemplo:TotalTOTALtOTAL

Palavras reservadas, não podem ser utilizadas para nomear variáveis ou funções. Exemplos:

break, continue, define, do, for, function, if, return, switch, struct, while.

52/66

Page 53: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.6 Linguagem C

Um bloco de comandos é demarcado com os símbolos {e }

Exemplo: { printf(“teste 1”) ; printif(“teste 2”)}

Entrada e Saída

printf–Imprime para a saída padrão (normalmente o vídeo)

scanf–Lê da entrada padrão (normalmente o teclado)

53/66

Page 54: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.6 Linguagem C

PrintfSintaxe: printf(“caracteres de controle”, lista de expressões);–O formato indica como exibir as variáveis

Exemplo:

Int numero = 3; printf("numero = %d\n", 2*numero);

ScanfSintaxe: scanf("caracteres de controle", lista de variáveis);

Exemplo:

scanf("%d %d", &m, &n)

54/66

Page 55: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.6 Linguagem C

Constantes de Caractere de Barra Invertida

Código Significado

\b Retrocesso(“back”)

\f Alinhamento de formulário

\n Nova linha

\r Retorno de carro

\t Tabulação horizontal

\” Aspas

\’ Apóstrofo

\0 Nulo (zero em decinal)

55/66

Page 56: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.6 Linguagem C

Comandos de formato da função

Código Significado

%c Caractere

%d Inteiros decimais com sinal

%i Inteiros decimais com sinal

%f Ponto Flutuante

%o Octal sem sinal

%s Cadeia sem sinal

%x Hexadecimal sem sinal

%p Apresenta o endereço de um ponteiro

56/66

Page 57: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.6 Linguagem C

Especificadores de formato da função scanf()

Código Significado

%c Faz a leitura de um único caractere

%d Faz a leitura de um único inteiro

%i Faz a leitura de um inteiros

%f Faz a leitura de um ponto Flutuante

%o Faz a leitura de um número octal

%s Faz a leitura de uma string

%x Faz a leitura de um número hexadecimal

%p Faz a leitura de um inteiro o endereço de um ponteiro

57/66

Page 58: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.6 Linguagem C

Exemplo de um programa que calcula um fatorial de um número

#include <stdio.h> #include <conio.h> void main() { int n, fat, i; printf("Digite o numero:"); scanf("%d", &n); fat= 1; i = 2; while(i <= n) { fat= fat* i; i = i + 1; } printf("Fatorial (%d) = %d", n, fat); }

58/66

Page 59: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.6 Linguagem C

Algumas informações

Todo programa em C deve ter uma função main, pois é esta função que será chamada quando o programa for executado. O conteúdo da função é delimitado por chaves { }. O código que estiver dentro das chaves será executado sequencialmente quando a função for chamada.

Biblioteca padrão de entrada e saída

em C existe um conjunto de funções definidas pelo programador, funções que utilizarão outras funções definidas pelo programador e algumas funções oferecidas pelo sistema (as funções oferecidas pelo sistema são chamadas funções de biblioteca ou funções pré-definidas).

A importação de uma biblioteca é dada pelo comando INCLUDE (incluir) seguido da biblioteca entre os sinais de menor (<) e maior (>).

59/66

Page 60: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.6 Linguagem C

Stdio.h

• printf(): imprime na saída padrão (monitor);• scanf(): lê dados da entrada padrão (teclado);• fopen(): permite a abertura ou criação de arquivos;• fclose(): fecha um arquivo aberto com fopen();• fprintf(): grava informações em arquivo;• fscanf(): lê informações de arquivo;• remove(): apaga um arquivo.

Stlib.h

• atoi(): converte uma string para um valor inteiro;• atof(): converte uma string para um valor real;• rand(): gera um número ou sequência de forma aleatória;• malloc(): aloca memória dinamicamente;• free(): libera a memória alocada por malloc().

60/66

Page 61: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.7 Code::Blocks

Em nosas aulas iremos utilizar o Code::Blocks, para facilitar o desenvolvimento e compilação de um programa em C, esse programa oferece um ambiente que integra um editor de textos a um compilador para linguagem C.

Para iniciar um novo programa em C faça:

61/66

Page 62: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.7 Code::Blocks

Em seguida clique em:

Depois em Go

62/66

Page 63: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.7 Code::Blocks

Na tela seguinte, selecione C e clique em Next

63/66

Page 64: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.7 Code::Blocks

Na janela seguinte, digite um nome para o arquivo de programa a ser digitado. Para tanto, clique no quadrado com ... que aparece ao lado da caixa com título Filename with full path: e digite um nome de arquivo, por exemplo fatorial.

Clique no botão ... que aparece uma caixa onde você colocará o nome do arquivo, por exemplo fatorial.

64/66

Page 65: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

1.7 Code::Blocks

Digite seu programa (por exemplo vamos utilizar nosso exemplo fatorial), e para compilar o seu programa você deve clicar em Build -> Compile current file ou pressione Ctrl + Shift + F9.

65/66

Page 66: 1 CONCEITOS INICIAIS

ROTEIRO

PROFESSOR: EDILSON LIMA

Bibliografia

ARAÚJO, Everton C. Algoritmos: fundamento e prática. 2.ed. Florianópolis: VisualBooks, 2005.

MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo. Algoritmos: lógica para desenvolvimento de programação de computadores. 17.ed. São Paulo: Érica, 2005.

SALIBA, Walter Luís Caram. Técnicas de programação: uma abordagem estruturada. São Paulo: Pearson Education do Brasil, 1992.

GUIMARÃES, Ângelo de Moura; LAGES, Newton Alberto de Castilho. Algoritmos e Estrutura de Dados. 28ª Tiragem. Editora LTC São Paulo.

66/66