Buscar

CONCEITOS INICIAIS Algoritimo

Prévia do material em texto

FALCULDADE PITÁGORAS
ALGORITMOS E PROGRAMAÇÃO
CONCEITOS INICIAIS
PROFESSOR: SÉRVULO JUNIOR
UNIDADE
1
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: SÉRVULO JUNIOR 02/66
ROTEIRO
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 03/66
1 CONCEITOS INICIAIS
RACIOCÍNIO LÓGICO é um conjunto de estudo que visa a
determinar os processos intelectuais que são as condições gerais do
conhecimento, mais podemos ser mais técnico e dizer que é sequência
coerente, regular e necessária de acontecimentos, de coisas ou fatos, ou
um esquema sistemático que define as interações com critérios e princípios
formais de raciocínio e pensamento.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 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 
desocupado” 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;
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 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.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 06/66
1.1 Definição de algoritmos
O QUE É UM PROBLEMA
• Podemos dizer que é uma proposta duvidosa, que
pode ter numerosas soluções; ou
• É uma questão que foge a uma determinada regra,
ou melhor, é o desvio de um percurso, o qual
impede de atingir com sucesso um determinado
objetivo com eficiência e eficácia;
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 06/66
1.1 Definição de algoritmos
A técnica mais importante no projeto da lógica
é chamada programação estruturada, a qual
consiste em uma metodologia de projeto,
objetivando:
• Agilizar a codificação da escrita da programação;
• Facilitar a depuração da sua leitura;
• Permitir a verificação de possíveis falhas apresentadas
pelos programas;
• Facilitar as alterações e atualizações dos programas.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 06/66
1.1 Definição de algoritmos
Passos fundamentais para a programação
estruturada:
• Escrever as instruções em sequencias ligadas entre si
apenas por estruturas sequencias, repetitivas ou de
selecionamento;
• Escrever instruções em grupos pequenos e combiná-los;
• Distribuir em módulos o problema entre os trabalhadores
sob a supervisão de um gerente de tarefas ou analista do
projeto; e
• Revisar o trabalho executando passo a passo o que a
aplicação deve executar.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 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.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 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?
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 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.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 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.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 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.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 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.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 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.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 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;
y := 0;
fim se;
fim se;
fim se;
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 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 provas
Calcular a média aritmética
Se a média for maior que 7,
o aluno foi aprovado,
senão ele foi reprovado
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 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 propriedadefacilita 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:
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 16/66
1.2 Formas de representação
Figura 1: Principais formas geométricas usadas em fluxogramas
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 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 
sob
a forma de um 
fluxograma.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 18/66
1.2 Formas de representação
3. PSEUDOCÓDIGO OU PORTUGUÊS ESTRUTURADO: 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
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 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.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 20/66
1.2 Formas de representação
Exemplo:
Algoritmo Calculo_Media;
var N1, N2, MEDIA: real;
início
leia N1, N2;
MEDIA = (N1 + N2) / 2;
se MEDIA >= 7 então
escreva “Aprovado”;
senão
escreva “Reprovado”;
fimse;
fim.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 21/66
1.3 Tipos de dados, variáveis e constantes
Para desenvolvermos um diagrama correto, 
devemos considerar como procedimentos 
prioritários os itens seguintes:
• Os diagramas devem ser feitos e quebrados em vários
níveis. Os primeiros devem conter apenas as ideias gerais,
deixando posteriores os detalhamentos necessários; e
• Para o desenvolvimento correto de um fluxograma, sempre
que possível, deve ser desenvolvido de cima para baixo e da
esquerda para a direita;
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 21/66
1.3 Tipos de dados, variáveis e constantes
Computador nada mais é que uma ferramenta utilizada para
solucionar problemas que envolvam a manipulação de informações,
sendo que essas informações classificam-se a grosso modo em dois
tipos básicos: DADOS e INSTRUÇÕES.
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.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 26/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.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 27/66
1.3 Tipos de dados, variáveis e constantes
Tipos de dados
Os dados são representados pelas informações a serem tratadas 
(processadas) por um computador. Essas informações estão 
caracterizadas por três tipos de dados: dados numéricos (inteiros e 
reais), dados caracteres e dados lógicos.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 28/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.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR 29/66
1.3 Tipos de dados, variáveis e constantes
Tipos reais
São considerados reais os valores numéricos positivos e negativos sendo
números fracionários ou inteiros. Este tipo de dados pode ser usado por
meio 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.
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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
30/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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 (_).
31/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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 maisvariá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.
32/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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 : inteiro;
SALARIO : real;
TEM_FILHOS : lógico;
33/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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 valores
temporá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 podem 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;
34/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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
35/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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);
36/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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.
37/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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
38/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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
39/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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;
40/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
1.4 Instruções primitivas
Operadores relacionais
operador operação
= igual
<> diferente
< menor
<= menor que
> maior
>= maior que
41/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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;
42/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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.
43/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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.
44/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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
45/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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.
46/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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.
47/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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>
48/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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.
49/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
1.4 Instruções primitivas
50/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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>
ou
Escreva <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.
51/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
1.4 Instruções primitivas
Leitura (entrada) de dados
52/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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. 
53/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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:
Total
TOTAL
tOTAL
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.
54/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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)
55/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
1.6 Linguagem C
Printf
Sintaxe: 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); 
Scanf
Sintaxe: scanf("caracteres de controle", lista de variáveis);
Exemplo:
scanf("%d %d", &m, &n) 
56/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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)
57/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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
58/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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
59/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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); 
} 
60/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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 (>).
61/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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().
62/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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:
63/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
1.7 Code::Blocks
Em seguida clique em:
Depois em Go
64/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
1.7 Code::Blocks
Na tela seguinte, selecione C e clique em Next
65/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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.
66/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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.
67/66
ROTEIRO
PROFESSOR: SÉRVULO JUNIOR
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.
68/66

Continue navegando