Introdução e Algoritmos
O Computador
Memória
Principal
(RAM, ROM, Cache,
Registradores)
Dispositivos de
Entrada
Dispositivos de
Saída
CPU
Memória Secundária
(CD, Disquete, HD)
O Computador
• Hardware: Componentes físicos de um sistema de
computação.
• Software: Instruções para o hardware executar uma
tarefa. São os programas do computador.
• Sistema Operacional: Conjunto de programas e
rotinas que gerenciam recursos de hardware de
modo a possibilitar sua utilização e permitir a
comunicação entre os dispositivos.
Software
• Linguagens de Programação:
• Proporcionam ao programador a possibilidade
de fornecer instruções ao computador através
de comandos ou sentenças, escritas em uma
linguagem próxima à linguagem humana,
permitindo desta forma a criação de novos
softwares;
• Linguagem que o computador entende é a
linguagem de máquina, composta de 0 e 1.
Linguagens de Programação
• Cada linguagem de programação obedece à
regras especificas. As regras de sintaxe de
uma linguagem de programação definem
como são expressados as instruções a serem
executadas;
• BAIXO NÍVEL - Linguagem de Máquina e
de Montagem. Mais compatíveis com o
hardware do computador;
• ALTO NÍVEL - Linguagens de Compilação e
Interpretação. Similares à nossa linguagem
natural.
Linguagens de Programação
• Linguagem de máquina:
– Formada por códigos binários interpretados
diretamente pelo hardware do computador;
– Exemplo:
Linguagens de Programação
• Linguagem Assembler:
• Formada por códigos mnemônicos, os quais precisam
ser convertidos em Linguagem de Máquina, para que
sejam interpretados pelo hardware do computador; é
difícil e específica mas poderosa e eficiente.
• Exemplo:
Linguagens de Programação
• Linguagem de Alto Nível:
• Usa sintaxe próxima da linguagem do usuário; Precisa
ser convertida em Linguagem de Máquina, para que
seja interpretada pelo hardware do computador;
• Exs: Fortran, Basic, Pascal, Delphi, C, C++, Java;
TOTAL = SALARIO + COMISSOES
Nomes de Variáveis
•Linguagem de Alto Nível:
Conversão em Linguagem de Máquina.
Linguagens de Programação
Algoritmos
• É uma seqüência de instruções bem definidas
que, executadas passo a passo, permitem a
solução de um problema.
• Passo-a-passo, significa que cada passo é
completado antes que o próximo comece.
• Bem-definido, significa que cada passo é
completamente definido a partir da entrada
atual e dos passos anteriores
Algoritmo
• É uma seqüência de instruções bem definidas que, executadas
passo a passo, permitem a solução de um problema. Essa é
uma definição geral podendo ser aplicada em qualquer
contexto.
• Exemplo: Um algoritmo para trocar uma lâmpada:
Passo 1: Desligar a chave.
Passo 2: Pegar uma lâmpada nova.
Passo 3: Pegar uma escada.
Passo 4: Posicionar a escada embaixo da lâmpada queimada
Passo 5: Subir na escada com a lâmpada nova na mão.
Passo 6: Retirar a lâmpada queimada.
Passo 7: Colocar a lâmpada nova.
Passo 8: Descer da escada.
Passo 9: Ligar a chave.
Passo 10: Testar a lâmpada.
Passo 11: Guardar a escada.
Passo 12: Jogar a lâmpada velha no lixo apropriado.
Algoritmo
• Podemos descrever um algoritmo um pouco diferente
para realizar a mesma tarefa, isso quer dizer que um
mesmo problema pode ser resolvido de maneiras
diferentes visando atingir o mesmo objetivo.
• Construindo um algoritmo:
– Ler atentamente o enunciado do problema destacando
seus pontos principais;
– Definir os dados de entrada, ou seja, quais dados serão
fornecidos;
– Definir o processamento dos dados, ou seja, o que deve
ser feito aos dados de entrada para transformá-los em
dados de saída.
– Definir os dados de saída, ou seja, a resposta ao problema.
Algoritmos
• Propriedades:
• A seqüência de instruções deve ser finita.
• Deve terminar depois de um número finito de
passos.
• Não deve existir ambigüidade sobre o próximo passo
a ser realizado.
• Deve ser correto, ou seja, sempre termina e para
qualquer instância de entrada produz uma saída
correta.
• Exemplos: Receita de bolo, Manual do videocassete,
Regras de um jogo, Direções para ir entre dois lugares
Programa
• Linguagens de Programação: proporcionam ao
programador a possibilidade de fornecer instruções ao
computador através de comandos ou sentenças, escritas
em uma linguagem próxima à linguagem humana,
permitindo desta forma a criação de novos softwares.
• Cada linguagem de programação obedece a regras
especificas. As regras de sintaxe de uma linguagem de
programação definem como são expressadas as
instruções a serem executadas.
• Um programa de computador (software) é representado
pelas instruções e dados definidos que ao serem
executados por alguma máquina cumprem algum
objetivo.
Algoritmos
Formas de Representação de Algoritmos:
1) Linguagem natural: Especificação verbal dos
passos em linguagem natural.
2) Fluxogramas: São diagramas que
representam graficamente o algoritmo,
enfatizando os passos individuais e o fluxo da
execução.
• Elementos são representados por símbolos
convencionais e os relacionamentos por linhas de
conexão, permitindo visualizar o fluxo lógico através
do tempo.
2) Fluxogramas
• Símbolos
Some A e B
inicio / fim
leitura
decisão
ação
impressão
conector
Leia A e B
Soma > 5
Imprima
“Maior que 5”
Início
Imprima
“Menor que 5”
Fim
S N
Algoritmos
3) Pseudocódigo: Linguagem especial para
expressão de algoritmos, funciona como uma
linguagem simplificada de programação, utilizando
expressões concisas e pré-definidas para
representar as ações e os fluxos de execução.
4) Programação é a seqüência de planejamento, projeto,
escrita, instalação e testes de instruções
desempenhadas pelo computador. Envolve
obediência às regras (lógicas e matemáticas),
otimização, documentação, ...
Algoritmos
Português Estruturado
• Uma forma de escrever algoritmos em pseudocódigo
é chamada de Português Estruturado. Esta forma se
aproxima de um programa, porém os comandos são
escritos em Português.
• Comandos Iniciais em Português Estruturado
• Corpo do Algoritmo:
// Título do Algoritmo
Início
<Declarações>
<Comandos>
Fim
Português Estruturado
• Comando de escrita na tela: Serve para imprimir
dados na tela do computador.
Escreva( );
• Comando de leitura de dados: Serve para obter
dados do usuário via teclado.
Leia( );
Exemplo 1
• Escreva um algorimtmo que escreva a frase “Meu
primeiro programa” na tela.
•Algoritmo:
// Algoritmo que escreve uma frase na tela
Início
Escreva("Meu primeiro programa");
Fim
Números
• Na maioria das linguagens de programação
comumente trabalhamos com dois tipos de números:
Tipo Exemplos
inteiro
12
25
9
real
2.9
7.0
0.5
Algumas operações
• Nosso programa pode efetuar algumas operações
aritméticas. As principais são:
+ soma
- subtração
* multiplicação
/ divisão
% resto da divisão
Operação de Divisão
• A operação de divisão pode ser de duas formas:
divisão inteira e divisão real.
inteiro / inteiro = inteiro
= real
real / real
real / inteiro = real
= real
inteiro / real
Precedência de operadores
( ) parênteses
* / % operadores de multiplicação, divisão
e resto
+ - operadores de soma e subtração
• Alguns operadores em ordem de precedência (de
cima para baixo) Em caso de associação, da
esquerda para a direita:
Exemplos:
2 + 3 * 3 – 5 =
(2 + 3) * (3 – 5) =
5 % 3 * 3 – 5 =
15 / 2 + 1.0 =
6
-10
1
8.0
Exemplo 2 – versão I
• Escreva um algoritmo que imprima o resultado da
expressão 2 * 8 + 2 – 5
// Algoritmo que imprime uma expressão;
Início
Escreva(2*8+2-5);
Fim.
Exemplo 2 – versão II
• Escreva um algoritmo que imprima o resultado da
expressão 2 * 8 + 2 – 5
// Algoritmo que imprime uma frase e uma expressão;
Início
Escreva("O resultado de 2*8+2-5 é ", 2*8+2-5);
Fim.
Exercícios
• Indique qual o resultado será obtido das seguintes
expressões:
a) 1 / 2
b) 1.0/2
c) 1%2
d) (220/10)%4
e) 29.0/2+4
f) 29/2+4
g) 3/6.0-7
• Escreva um algoritmo que calcule o valor da seguinte
expressão:

















9
87
15
36
18
10
12
25
Variáveis
• Uma variável é uma porção da memória do computador
onde um valor pode ser armazenado para ser usado por
um programa. A esse espaço de memória é associado um
nome (identificador) e um tipo que corresponde ao tipo
de informação que será armazenada.
• Nomes de variáveis:
– O primeiro caractere deve ser uma letra ou o caractere _
– Na formação dos identificadores são permitidos: números,
letras (maiúsculas ou minúsculas) e o caractere _
– Algumas linguagens fazem diferença entre maiúsculas e
minúsculas, portanto o identificador num é diferente de
Num, nUm, NUM, ...
– Não são permitidos espaços em branco.
Variáveis
• Tipos de dados primitivos:
caractere
inteiro
real
• Declaração de variáveis: Normalmente feita no início do
algoritmo, define o espaço a ser reservado na memória para
uso do algoritmo.
• Forma Geral:
tipo nome;
Exemplo:
inteiro a;
real b, c;
• Nem todas as linguagens exigem declaração de variáveis. A
linguagem C exige.
• Para armazenar valores em variáveis:
• Operador de atribuição (=): Armazena um valor ou o
resultado de uma expressão em uma variável.
Exemplo:
inteiro a, b;
a = 10;
b = 5 * 7 + a;
• Comando de leitura de dados: Obtém dados do usuário
via teclado.
Leia(c);
Variáveis
Exemplo 1
• Escreva um algoritmo que leia dois números inteiros e
apresente na tela a soma destes valores.
// Calcula a soma de dois números digitados pelo usuário
Início
inteiro a, b, soma;
Leia(a);
Leia(b);
soma = a + b;
Escreva("O resultado da soma é“, soma);
Fim
Exemplo 1 – Versão II
• Escreva um algoritmo que leia dois números inteiros e
apresente na tela a soma destes valores.
// Calcula a soma de dois números digitados pelo usuário
Início
inteiro a, b, soma;
Escreva("Digite um número inteiro:");
Leia(a);
Escreva("Digite outro número inteiro:");
Leia(b);
soma = a + b;
Escreva("O resultado da soma é", soma);
Fim
Exemplo 2
• Escreva um programa que leia a base e a altura de um
triângulo e calcule e escreva na tela o valor de sua área:
// Calcula a área de um triângulo
Início
real base, altura, area;
Escreva("Digite o valor da base do triângulo:");
Leia(base);
Escreva("Digite o valor da altura do triângulo:");
Leia(altura);
area = base*altura/2;
Escreva("O valora da área do triangulo é", area);
Fim
Exercícios
• Um funcionário recebe um salário fixo mais 4% de comissão sobre
as vendas. Escreva um programa que leia o valor do salário fixo de
um funcionário e o valor de suas vendas, calcule e mostre na tela a
comissão e o salário final do funcionário.
• Sabe-se que para iluminar de maneira correta os cômodos de uma
casa, para cada m2 deve-se usar 18 W de potência. Escreva um
programa que leia as dimensões de um cômodo retangular (em
metros), calcule e mostre a sua área (em m2) e a potência de
iluminação que deverá ser utilizada.
• João recebeu seu salário e precisa pagar duas contas que estão
atrasadas. João deverá pagar de multa 2% do valor de cada conta.
Escreva um programa que leia o valor do salário de João e o valor
de cada uma das contas, calcule e mostre na tela quanto restará do
salário de João.

Aula 2 - Introducao e Algoritmos.ppt

  • 1.
  • 2.
    O Computador Memória Principal (RAM, ROM,Cache, Registradores) Dispositivos de Entrada Dispositivos de Saída CPU Memória Secundária (CD, Disquete, HD)
  • 3.
    O Computador • Hardware:Componentes físicos de um sistema de computação. • Software: Instruções para o hardware executar uma tarefa. São os programas do computador. • Sistema Operacional: Conjunto de programas e rotinas que gerenciam recursos de hardware de modo a possibilitar sua utilização e permitir a comunicação entre os dispositivos.
  • 4.
    Software • Linguagens deProgramação: • Proporcionam ao programador a possibilidade de fornecer instruções ao computador através de comandos ou sentenças, escritas em uma linguagem próxima à linguagem humana, permitindo desta forma a criação de novos softwares; • Linguagem que o computador entende é a linguagem de máquina, composta de 0 e 1.
  • 5.
    Linguagens de Programação •Cada linguagem de programação obedece à regras especificas. As regras de sintaxe de uma linguagem de programação definem como são expressados as instruções a serem executadas; • BAIXO NÍVEL - Linguagem de Máquina e de Montagem. Mais compatíveis com o hardware do computador; • ALTO NÍVEL - Linguagens de Compilação e Interpretação. Similares à nossa linguagem natural.
  • 6.
    Linguagens de Programação •Linguagem de máquina: – Formada por códigos binários interpretados diretamente pelo hardware do computador; – Exemplo:
  • 7.
    Linguagens de Programação •Linguagem Assembler: • Formada por códigos mnemônicos, os quais precisam ser convertidos em Linguagem de Máquina, para que sejam interpretados pelo hardware do computador; é difícil e específica mas poderosa e eficiente. • Exemplo:
  • 8.
    Linguagens de Programação •Linguagem de Alto Nível: • Usa sintaxe próxima da linguagem do usuário; Precisa ser convertida em Linguagem de Máquina, para que seja interpretada pelo hardware do computador; • Exs: Fortran, Basic, Pascal, Delphi, C, C++, Java; TOTAL = SALARIO + COMISSOES Nomes de Variáveis
  • 9.
    •Linguagem de AltoNível: Conversão em Linguagem de Máquina. Linguagens de Programação
  • 10.
    Algoritmos • É umaseqüência de instruções bem definidas que, executadas passo a passo, permitem a solução de um problema. • Passo-a-passo, significa que cada passo é completado antes que o próximo comece. • Bem-definido, significa que cada passo é completamente definido a partir da entrada atual e dos passos anteriores
  • 11.
    Algoritmo • É umaseqüência de instruções bem definidas que, executadas passo a passo, permitem a solução de um problema. Essa é uma definição geral podendo ser aplicada em qualquer contexto. • Exemplo: Um algoritmo para trocar uma lâmpada: Passo 1: Desligar a chave. Passo 2: Pegar uma lâmpada nova. Passo 3: Pegar uma escada. Passo 4: Posicionar a escada embaixo da lâmpada queimada Passo 5: Subir na escada com a lâmpada nova na mão. Passo 6: Retirar a lâmpada queimada. Passo 7: Colocar a lâmpada nova. Passo 8: Descer da escada. Passo 9: Ligar a chave. Passo 10: Testar a lâmpada. Passo 11: Guardar a escada. Passo 12: Jogar a lâmpada velha no lixo apropriado.
  • 12.
    Algoritmo • Podemos descreverum algoritmo um pouco diferente para realizar a mesma tarefa, isso quer dizer que um mesmo problema pode ser resolvido de maneiras diferentes visando atingir o mesmo objetivo. • Construindo um algoritmo: – Ler atentamente o enunciado do problema destacando seus pontos principais; – Definir os dados de entrada, ou seja, quais dados serão fornecidos; – Definir o processamento dos dados, ou seja, o que deve ser feito aos dados de entrada para transformá-los em dados de saída. – Definir os dados de saída, ou seja, a resposta ao problema.
  • 13.
    Algoritmos • Propriedades: • Aseqüência de instruções deve ser finita. • Deve terminar depois de um número finito de passos. • Não deve existir ambigüidade sobre o próximo passo a ser realizado. • Deve ser correto, ou seja, sempre termina e para qualquer instância de entrada produz uma saída correta. • Exemplos: Receita de bolo, Manual do videocassete, Regras de um jogo, Direções para ir entre dois lugares
  • 14.
    Programa • Linguagens deProgramação: proporcionam ao programador a possibilidade de fornecer instruções ao computador através de comandos ou sentenças, escritas em uma linguagem próxima à linguagem humana, permitindo desta forma a criação de novos softwares. • Cada linguagem de programação obedece a regras especificas. As regras de sintaxe de uma linguagem de programação definem como são expressadas as instruções a serem executadas. • Um programa de computador (software) é representado pelas instruções e dados definidos que ao serem executados por alguma máquina cumprem algum objetivo.
  • 15.
    Algoritmos Formas de Representaçãode Algoritmos: 1) Linguagem natural: Especificação verbal dos passos em linguagem natural. 2) Fluxogramas: São diagramas que representam graficamente o algoritmo, enfatizando os passos individuais e o fluxo da execução. • Elementos são representados por símbolos convencionais e os relacionamentos por linhas de conexão, permitindo visualizar o fluxo lógico através do tempo.
  • 16.
    2) Fluxogramas • Símbolos SomeA e B inicio / fim leitura decisão ação impressão conector Leia A e B Soma > 5 Imprima “Maior que 5” Início Imprima “Menor que 5” Fim S N Algoritmos
  • 17.
    3) Pseudocódigo: Linguagemespecial para expressão de algoritmos, funciona como uma linguagem simplificada de programação, utilizando expressões concisas e pré-definidas para representar as ações e os fluxos de execução. 4) Programação é a seqüência de planejamento, projeto, escrita, instalação e testes de instruções desempenhadas pelo computador. Envolve obediência às regras (lógicas e matemáticas), otimização, documentação, ... Algoritmos
  • 18.
    Português Estruturado • Umaforma de escrever algoritmos em pseudocódigo é chamada de Português Estruturado. Esta forma se aproxima de um programa, porém os comandos são escritos em Português. • Comandos Iniciais em Português Estruturado • Corpo do Algoritmo: // Título do Algoritmo Início <Declarações> <Comandos> Fim
  • 19.
    Português Estruturado • Comandode escrita na tela: Serve para imprimir dados na tela do computador. Escreva( ); • Comando de leitura de dados: Serve para obter dados do usuário via teclado. Leia( );
  • 20.
    Exemplo 1 • Escrevaum algorimtmo que escreva a frase “Meu primeiro programa” na tela. •Algoritmo: // Algoritmo que escreve uma frase na tela Início Escreva("Meu primeiro programa"); Fim
  • 21.
    Números • Na maioriadas linguagens de programação comumente trabalhamos com dois tipos de números: Tipo Exemplos inteiro 12 25 9 real 2.9 7.0 0.5
  • 22.
    Algumas operações • Nossoprograma pode efetuar algumas operações aritméticas. As principais são: + soma - subtração * multiplicação / divisão % resto da divisão
  • 23.
    Operação de Divisão •A operação de divisão pode ser de duas formas: divisão inteira e divisão real. inteiro / inteiro = inteiro = real real / real real / inteiro = real = real inteiro / real
  • 24.
    Precedência de operadores () parênteses * / % operadores de multiplicação, divisão e resto + - operadores de soma e subtração • Alguns operadores em ordem de precedência (de cima para baixo) Em caso de associação, da esquerda para a direita: Exemplos: 2 + 3 * 3 – 5 = (2 + 3) * (3 – 5) = 5 % 3 * 3 – 5 = 15 / 2 + 1.0 = 6 -10 1 8.0
  • 25.
    Exemplo 2 –versão I • Escreva um algoritmo que imprima o resultado da expressão 2 * 8 + 2 – 5 // Algoritmo que imprime uma expressão; Início Escreva(2*8+2-5); Fim.
  • 26.
    Exemplo 2 –versão II • Escreva um algoritmo que imprima o resultado da expressão 2 * 8 + 2 – 5 // Algoritmo que imprime uma frase e uma expressão; Início Escreva("O resultado de 2*8+2-5 é ", 2*8+2-5); Fim.
  • 27.
    Exercícios • Indique qualo resultado será obtido das seguintes expressões: a) 1 / 2 b) 1.0/2 c) 1%2 d) (220/10)%4 e) 29.0/2+4 f) 29/2+4 g) 3/6.0-7 • Escreva um algoritmo que calcule o valor da seguinte expressão:                  9 87 15 36 18 10 12 25
  • 28.
    Variáveis • Uma variávelé uma porção da memória do computador onde um valor pode ser armazenado para ser usado por um programa. A esse espaço de memória é associado um nome (identificador) e um tipo que corresponde ao tipo de informação que será armazenada. • Nomes de variáveis: – O primeiro caractere deve ser uma letra ou o caractere _ – Na formação dos identificadores são permitidos: números, letras (maiúsculas ou minúsculas) e o caractere _ – Algumas linguagens fazem diferença entre maiúsculas e minúsculas, portanto o identificador num é diferente de Num, nUm, NUM, ... – Não são permitidos espaços em branco.
  • 29.
    Variáveis • Tipos dedados primitivos: caractere inteiro real • Declaração de variáveis: Normalmente feita no início do algoritmo, define o espaço a ser reservado na memória para uso do algoritmo. • Forma Geral: tipo nome; Exemplo: inteiro a; real b, c; • Nem todas as linguagens exigem declaração de variáveis. A linguagem C exige.
  • 30.
    • Para armazenarvalores em variáveis: • Operador de atribuição (=): Armazena um valor ou o resultado de uma expressão em uma variável. Exemplo: inteiro a, b; a = 10; b = 5 * 7 + a; • Comando de leitura de dados: Obtém dados do usuário via teclado. Leia(c); Variáveis
  • 31.
    Exemplo 1 • Escrevaum algoritmo que leia dois números inteiros e apresente na tela a soma destes valores. // Calcula a soma de dois números digitados pelo usuário Início inteiro a, b, soma; Leia(a); Leia(b); soma = a + b; Escreva("O resultado da soma é“, soma); Fim
  • 32.
    Exemplo 1 –Versão II • Escreva um algoritmo que leia dois números inteiros e apresente na tela a soma destes valores. // Calcula a soma de dois números digitados pelo usuário Início inteiro a, b, soma; Escreva("Digite um número inteiro:"); Leia(a); Escreva("Digite outro número inteiro:"); Leia(b); soma = a + b; Escreva("O resultado da soma é", soma); Fim
  • 33.
    Exemplo 2 • Escrevaum programa que leia a base e a altura de um triângulo e calcule e escreva na tela o valor de sua área: // Calcula a área de um triângulo Início real base, altura, area; Escreva("Digite o valor da base do triângulo:"); Leia(base); Escreva("Digite o valor da altura do triângulo:"); Leia(altura); area = base*altura/2; Escreva("O valora da área do triangulo é", area); Fim
  • 34.
    Exercícios • Um funcionáriorecebe um salário fixo mais 4% de comissão sobre as vendas. Escreva um programa que leia o valor do salário fixo de um funcionário e o valor de suas vendas, calcule e mostre na tela a comissão e o salário final do funcionário. • Sabe-se que para iluminar de maneira correta os cômodos de uma casa, para cada m2 deve-se usar 18 W de potência. Escreva um programa que leia as dimensões de um cômodo retangular (em metros), calcule e mostre a sua área (em m2) e a potência de iluminação que deverá ser utilizada. • João recebeu seu salário e precisa pagar duas contas que estão atrasadas. João deverá pagar de multa 2% do valor de cada conta. Escreva um programa que leia o valor do salário de João e o valor de cada uma das contas, calcule e mostre na tela quanto restará do salário de João.