INTRODUÇÃO À COMPUTAÇÃO
Introdução à Programação
Prof. Fernando Castilho [email protected]
2021/2
PROGRAMAÇÃO - Definição
Programa
Sequência completa de instruções a serem executadas
por um computador, de acordo com um algoritmo.
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. Descrição de uma solução para um problema.
O que é um programa de computador ?
É uma coleção de instruções que descrevem as
tarefas a serem realizadas por um computador.
As instruções são escritas em uma linguagem de
programação
Linguagem de máquina
É a linguagem constituída inteiramente de números,
interpretada pelo processador do computador;
Cada processador tem seu conjunto único de
instruções que definem sua linguagem de máquina,
estabelecido pelo fabricante do chip;
É uma linguagem de difícil entendimento pelo
homem.
Linguagem Assembler
Linguagem Processador Intel
Linguagem de Alto Nível
São as linguagens de programação que possuem
uma estrutura e palavras-chave que são mais
próximas da linguagem humana.
Tornam os programas mais fáceis de serem lidos e
escritos.
Precisam ser traspostas (compiladas ou
interpretadas) para linguagem de máquina para
serem executadas no computador.
Histórico das principais linguagens
A primeira linguagem de programação de alto nível
amplamente usada foi Fortran, criada em 1954 na
IBM;
Em 1958: Flow-Matic, ALGOL, Lisp (amplamente
utilizada na pesquisa na área de ciência da
computação mais proeminentemente na área de
Inteligência Artificial);
Em 1959: COBOL usada para área comercial;
Em 1960: ALGOL-60 (teve grande influência no projeto
de muitas linguagens posteriores);
Linguagem C: criada em 1972 para escrever o Unix no
Centro de Pesquisas da Bell Laboratories;
Em 1996: JAVA linguagem interpretada
Algoritmo
Um algoritmo não representa, necessariamente, um
programa de computador, e sim os passos
necessários para realizar uma tarefa;
Sua implementação pode ser feita por um
computador, por outro tipo de autômato ou mesmo
por um ser humano;
Diferentes algoritmos podem realizar a mesma
tarefa usando um conjunto diferenciado de
instruções em mais ou menos tempo, espaço ou
esforço do que outros.
Fluxograma
Fluxograma, diagrama de fluxo ou
diagrama de blocos:
É uma representação gráfica que utiliza
formas geométricas ligadas por setas para
indicar as instruções que devem ser
seguidas para resolver um problema.
Vantagem: o entendimento dos
elementos gráficos é mais fácil;
Desvantagem: é necessário aprender a
simbologia dos fluxogramas.
Simbologia dos fluxogramas
Pseudocódigo
Exemplo: Algoritmo Somar
Var n1, n2, total : Inteiro;
Inicio
Escreva(“Digite um número”);
Leia(n1);
Escreva(“Digite outro número”);
Leia(n2);
total ← n1 + n2;
Escreva(“A soma dos números é {0}.”, total);
Fim
Algoritmo
Fluxograma
Início – Simples representação do começo do algoritmo
INÍCIO
Entrada – Ponto de informação de valores e variáveis
usadas no processamento
ENTRADA
Algoritmo
Fluxograma
Cálculo– Operações realizadas sobre variáveis e
valores para compor a geração da solução
CÁLCULO
Decisão– Ponto de avaliação de um valor e desvio
condicional do fluxo de operações
DECISÃO
Algoritmo
Fluxograma
Saída – Apresentação dos resultados intermediários ou
finais obtidos no algoritmo
SAÍDA
Fim– Simples representação do final da execução do
fluxo no algoritmo
FIM
Algoritmo
Fluxograma
Vantagens
Uma figura fala por mil palavras
Padrão mundial
Ferramenta muito conhecida
Desvantagens
Nãofavorece a representação dos dados
Complexidade diretamente associada ao seu tamanho
Algoritmo
Linguagem algorítmica
Linguagem de programação com comandos em linguagem
natural (português, inglês...) para representar algoritmos
Exemplo
Algoritmo ELEVA_AO_QUADRADO
X, QUADRADO: inteiro
Início
Ler X
QUADRADO := X * X
Escrever QUADRADO
fim
Algoritmo
Linguagem algorítmica
Vantagens
Linguagem conhecida é utilizada (português)
Permite definir a forma e a estrutura dos dados
Define um modelo a ser traduzido para uma linguagem de
programação
Desvantagens
Falha em padronização
Algoritmo
Elementos/Conceitos
Comando – Cada passo que define ação no algoritmo
Variável – representação simbólica de um elemento de
um conjunto. Assume uma posição na memória (quando
em computador). Tem o seu conteúdo alterado durante
a execução do algoritmo.
Umavariável com um valor “A” representa um espaço na
memória, que contém o valor “A”.
Algoritmo
Elementos/Conceitos
Atribuição – É o ato de uma variável receber um valor
vindo de outra variável. É um elemento representado
pelo símbolo “ := “. O valor a ser atribuído é
representado à direita do símbolo e a variável a
receber o valor é representada à esquerda do
símbolo.
Ex: QUADRADO := X * X
A variável QUADRADO recebe o valor de X multiplicado
por X
Variáveis Booleanas
Variável que pode assumir dois valores
Verdadeiro
Representado por 1, ou “true”
Falso
Representado por 0 ou “false”
O teste de uma variável booleana consiste em
apenas em perguntar “se <variável>”
Se o resultado for verdadeiro, seu conteúdo será 1 ou
Se for falso, o conteúdo será 0.
Variáveis (+ Ambiente VisuAlg)
Tipos de Dados
inteiro: define variáveis numéricas sem casas decimais.
real: define variáveis numéricas com casas decimais.
caractere: define variáveis do tipo string, ou seja, cadeia de caracteres.
logico: define variáveis do tipo booleano, ou seja, com valor
VERDADEIRO ou FALSO.
Vetor: define variáveis estruturadas através da palavra-chave vetor,
explicado a seguir.
Nomes de Variáveis e sua Declaração
Devem começar por uma letra e depois letras, números ou underline ( _ )
Tamanho até 30 caracteres.
Simples ou estruturadas (vetores podem ter 1 ou 2 dimensões).
Não pode haver duas variáveis com o mesmo nome
Variáveis (+ Ambiente VisuAlg)
A seção de declaração de variáveis
começa com a palavra-chave var, e continua com :
<lista-de-variáveis> : <tipo-de-dado>
<lista-de-variáveis> : vetor "["<lista-de-intervalos>"]"
de <tipo-de-dado>
Na <lista-de-variáveis> - nomes separados por vírgulas.
Na <lista-de-intervalos>, os <intervalo> separados por
vírgulas, com a sintaxe:
<intervalo>: <valor-inicial> .. <valor-final>
<valor-inicial> e <valor-final> devem ser inteiros.
<valor-final> tem que ser maior do que <valor-inicial>.
Variáveis (+ Ambiente VisuAlg)
Exemplos:
var a: inteiro
Valor1, Valor2: real
vet: vetor [1..10] de real
matriz: vetor [0..4,8..10] de inteiro
nome_do_aluno: caractere
sinalizador: logico
A variável vet acima tem 10 elementos, com os índices
de [1] a [10], enquanto matriz tem 15 elementos com
índices [0,8], [0,9], [0,10], [1,8], [1,9], [1,10], ... até
[4,10].
Estrutura condicional
SE, ou IF
Seu argumento é uma relação em lógica booleana
Seu resultado sempre será “Verdadeiro” (“1”, “true”)
ou “Falso” (“0”, “false”)
Estrutura:
SE <expressão lógica>
(então) <comandos>
(senão) <comandos>
FIM-SE
Conectivos
Conectivo “e”
Especificaque o resultado de uma associação de
valores só pode ser verdadeiro se todos os valores o
forem.
A e B
Conectivo “ou”
Especifica que o resultado de uma associação de
valores é verdadeiro, se pelo menos um deles o for.
A ou B ou ambos
Algoritmo
Tabela Verdade
Estrutura para a validação de expressões que utilizam
conectivos lógicos
A B AeB A B A ou B
V V V V V V
V F F V F V
F V F F V V
F F F F F F
Exercícios
Considere as seguintes hipóteses:
1) Meu carro (A) pode estar abastecido (V) ou não (F)
2) A festa (B) pode acontecer hoje (V) ou não (F)
3) Eu (C) posso estar ocupado (V) ou não (F)
4) Nós (D) podemos ir à festa (V) ou não (F)
Fazer uma tabela verdade para cada combinação de
hipóteses:
As hipóteses 1, 2 e 3
As hipóteses 1, 3 e 4
Todas as hipóteses
Exercício
Fazer um algoritmo para
Ler os valores informados de salário base e descontos
de um trabalhador e calcular o seu salário líquido
(Salario base – descontos).
SALARIO_BASE, DESCONTOS, SALARIO_LIQUIDO
Exercício
Fazer um algoritmo para
Ler 3 notas de um aluno e calcular sua média,
considerando que a nota 3 vale 50% da média e as
outras duas, 25% da média.
Determinar sua aprovação ou não, pelo critério:
Média igual ou maior que 5, aprovado. Senão,
reprovado.
Exercício
Fazer um algoritmo para ler três valores inteiros
e verificar se eles podem ser os lados de um
triângulo. Se forem, informar qual o tipo de
triângulo que eles formam: equilátero, isóscele
ou escaleno.
Propriedade:
o comprimento de cada lado de um triângulo
é menor do que a soma dos comprimentos dos outros dois
lados.
Comandos de repetição
Em um programa é comumente necessária a
execução de um comando ou grupo de comandos
um número de vezes, para que um resultado seja
obtido.
Os comandos que encerram instruções repetidas
segundo uma condição estabelecem um “laço” de
repetição, ou um “loop”.
Comandos de repetição
Os comandos de repetição são:
For (para)
• Do While (fazer enquanto...)
Do/Repeat Until (fazer/repetir até...)
As diferenças entre os comandos, segundo sua
aplicação, devem ser examinadas primeiramente à
luz das possibilidades e facilidade de controle
sobre a condição e também sob o ponto de vista
de processamento do programa.
Comando For (para)
Executa um laço de repetição para um número
conhecido de vezes;
Encerra um comando simples a ser executado, ou a
invocação de um procedimento que contenha vários
comandos, não especificados no corpo do comando.
Funcionamento controlado por um contador
Português Estruturado:
Para... De... Até... Passo... Faça... Fim-para.
Diagrama de blocos
Contador – VAR Início, Fim, Incremento
Instruções
Comando Do While
Execução controlada por decisão
Teste Lógico no início do laço
O laço pode não ser executado se a condição não for
satisfeita inicialmente
Português Estruturado
Enquanto... Faça... Fim-enquanto.
Diagrama de blocos
Teste da condição
Instruções (executadas enquanto a condição for satisfeita)
A condição pode significar uma interação com um usuário, até
que uma condição por ele especificada seja satisfeita
Comando Do Until / Repeat Until
Execução controlada por decisão
Teste lógico no fim do laço
Sempre executa o laço, pelo menos uma vez
Português estruturado
Repetir... Até que...
Diagrama de blocos
Instruções(executadas antes de se verificar uma
condição de parada)
Teste de condição
Considerações
As estruturas Do while e Do Until podem substituir
qualquer estrutura For
Nem toda estrutura For pode substituir as demais,
caso estas não envolvam um contador.
Encadeamento de estruturas de
repetição
While (Enquanto) com While (Enquanto)
Pode ser usado para resolver um problema com
matrizes
enquanto linha < X
enquanto linha < Y
Instruções ...
Fim-enquanto
Fim-enquanto
Encadeamento de estruturas de
repetição
While (Enquanto) com Do-Until (Faça-até)
enquanto (condição 1) ... Faça
faça / repita
Instruções ...
Até-que (condição 2)
Fim-enquanto
Exercício
Fazer um algoritmo para
Lertrês valores inteiros distintos e os escrever em ordem
crescente
Encadeamento de estruturas de
repetição
While (Enquanto) com Para (For)
enquanto (condição 1) ... Faça
Para <variável> de <início> até <fim> passo <incremento> faça
Instruções ...
Fim-para
Fim-enquanto
Exercícios
Fazer o algoritmo, utilizando narrativa, pseudocódigo
e fluxograma para a solução de:
Sequência de Fibonacci. (0, 1, 1, 2, 3, 5, 8, 13...)
Exemplificar com a sequência até a posição 8
Passo Final Soma N1 N2 Posição Imprime
1 8 0 0 1 3
2 8 1 1 1 4
3 8 2 1 2 5
4 8 3 2 3 6
5 8 5 3 5 7
6 8 8 5 8 8
7 8 13 8 13 9
8 8 13
Exercício
Fazer o algoritmo, utilizando descrição narrativa,
pseudocódigo e fluxograma para:
Calculara média dos alunos de uma turma, a partir da
média aritmética simples das provas que ele realizou.
Para cada prova realizada o aluno ganha meio ponto
na média, até o máximo de 4 provas.
Considerar N alunos (teste verifica o n-ésimo aluno)
Considerar N provas (teste para a n-ésima prova)
Exercício
Aluno Prova 1 Prova 2 Prova 3 ... Prova N MÉDIA
Aluno 1
Aluno 2
Aluno 3
...
Aluno N
Média Geral da Turma ...............
Exercício
Fazer o algoritmo, utilizando pseudocódigo e
fluxograma para:
Ler em uma transação de venda cada produto e
quantidade que são informados pelo caixa. Para cada
produto lido totalizar a venda e calcular o desconto
segundo a regra:
Se o total passar de R$ 100,00, aplicar 5% de desconto.
Se o total passar os R$ 500,00, aplicar 10% de desconto.
Para qualquer valor total acima de R$ 1.000,00 aplicar 15% de
desconto.
Para cada linha de venda (produto informado) exibir o
total sem desconto, o desconto percentual, o valor do
desconto e o valor total da venda.
Exercícios
Calcular o fatorial do número 12
Utilizar as estruturas Do While, Do Until e For
Alterar o programa anterior para calcular o
fatorial que o usuário desejar calcular e apresentar
o resultado. Estabelecer uma condição de parada
do programa pelo usuário.
Exercício
Apresentar a tabuada de um número qualquer
informado, mostrando os fatores e o resultado.
Exercício
Fazer um algoritmo para somar o conteúdo de
todas as células de uma planilha com 10 colunas e
com número de linhas especificado pelo usuário.
Exercício
Fazer um algoritmo para
1) Ler 10 números aleatórios, totalizar os pares, os
ímpares e determinar a média geral dos números
informados. A condição de parada é ter lido e
processado os 10 números.
2) Ler os valores de compras de 10 clientes e atribuir
descontos, de acordo com as condições:
Compra > R$ 500,00 5% de desconto
Compra > R$ 1000,00 7% de desconto
Compra > R$ 1500,00 10% de desconto
Exercícios
Fazer um algoritmo para
3) Acumular o valor de um dado de 6 lados lançado,
até que a soma final dos resultados dos lances esteja o
mais próximo possível do número 55. Execute a
parada quando o valor ultrapassar 55 ou o lançador
desejar parar, digitando “X”. Apresentar a soma e o
número de lances para cada jogo. Se o número
ultrapassar 55 o jogo estará perdido.
Exercício
Fazer um algoritmo para
4) Para uma série de 10 lançamentos de uma bola de
ferro, nos jogos olímpicos, guardar o valor da maior
distância obtida e apresentar apenas a maior
distância.
Exercício
Fazer um algoritmo, utilizando descrição narrativa,
pseudocódigo e fluxograma para:
Calcular a média dos alunos de uma turma, a partir da
média aritmética simples das provas que ele realizou.
Para cada prova realizada o aluno ganha meio ponto
extra na média, até o máximo de 4 provas.
Considerar N alunos (teste verifica o n-ésimo aluno)
Considerar N provas (teste para a n-ésima prova)
Exercício
Aluno Prova 1 Prova 2 Prova 3 ... Prova N MÉDIA
Aluno 1
Aluno 2
Aluno 3
...
Aluno N
Média Geral da Turma ...............
Exercício
Fazer o algoritmo, utilizando pseudocódigo e
fluxograma para:
Ler em uma transação de venda cada produto e
quantidade que são informados pelo caixa. Para cada
produto lido totalizar a venda e calcular o desconto
segundo a regra:
Se o total passar de R$ 100,00, aplicar 5% de desconto.
Se o total passar os R$ 500,00, aplicar 10% de desconto.
Para qualquer valor total acima de R$ 1.000,00 aplicar 15% de
desconto.
Para cada linha de venda (produto informado) exibir o
total sem desconto, o desconto percentual, o valor do
desconto e o valor total da venda.