0% acharam este documento útil (0 voto)
92 visualizações54 páginas

Introdução À Programação e Aos Algoritmos

Este documento fornece uma introdução aos conceitos básicos de programação e computação. Em 3 frases: Apresenta definições de programa, algoritmo e linguagem de programação. Explora os elementos fundamentais de algoritmos como variáveis, atribuições, estruturas condicionais e tabelas verdade. Inclui exemplos de pseudocódigo e fluxogramas para ilustrar a representação de algoritmos.

Enviado por

Thiago Handrey
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
92 visualizações54 páginas

Introdução À Programação e Aos Algoritmos

Este documento fornece uma introdução aos conceitos básicos de programação e computação. Em 3 frases: Apresenta definições de programa, algoritmo e linguagem de programação. Explora os elementos fundamentais de algoritmos como variáveis, atribuições, estruturas condicionais e tabelas verdade. Inclui exemplos de pseudocódigo e fluxogramas para ilustrar a representação de algoritmos.

Enviado por

Thiago Handrey
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 54

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.

Você também pode gostar