Prévia do material em texto
Curso: Engenharia da Computação
Disciplina: Programação de Computadores
Introdução à programação
Professor: Marcos Backes Rocha
Vilhena – RO
2021
1
Acadêmico: Marcos Backes Rocha
Aula Informática na Educação
Apresentação dos alunos
Nome
Cidade onde mora
Já possui graduação?
Caso positivo, qual a graduação?
Já reprovou nesta disciplina?
Trabalhou o trabalha com TI?
Quais as expectativas deste curso?
Quais as maiores dificuldades encontradas?
https://trello.com/invite/b/fXoNGVY8/e4f99b2a6126ed86683d1fa46d3104d5/programa%C3%A7%C3%A3o-de-computadores
OBJETIVO
Entender os conceitos da Programação;
Apresentar algoritmos e conceitos de lógica, evidenciando seus aspectos principais;
CONTEÚDO
Histórico dos computadores;
Arquiteturas e como os componentes interagem;
Algoritmos e sequencia lógica de instruções;
Conceitos de linguagem de programação;
Principais paradigmas;
RECURSOS
Computador
Internet
Teams
Slides (PowerPoint)
Visualg
AVALIAÇÃO
Os alunos serão avaliados por intermédio de:
AV1 - Previsto para 08/10/2021
1ª Avaliação: 8 pontos
Atividade 1: 1 pontos
Atividade 2: 1 pontos
AV2 - Previsto para 03/12/2021
2ª Avaliação: 10 pontos
Atividade 1: estudos
Atividade 2: estudos
Média: (AV1+AV2)/2
AVALIAÇÃO
Critérios para aprovação:
A Média deve ser maior ou igual a 7 pontos
Caso não alcance este valor, deverá fazer a avaliação substitutiva
Avaliação substitutiva: 10 pontos (previsto para 17/12/2021)
Média após a substitutiva: (média da AV1 + AV2 + substitutiva)/2
A Média final após este cálculo deve ser maior ou igual a 7 pontos
AVALIAÇÃO
Critérios para aprovação:
Caso não alcance este valor, deverá fazer o exame final
Exame: 10 pontos (previsto para 24/12/2021)
Média após o exame: ((maior média) + exame)/2
A Média final após este cálculo deve ser maior ou igual a 5 pontos
Introdução
Durante esta aula conhecer um pouco da história dos computadores, além de sua arquitetura e como seus componentes interagem.
Veremos que um algoritmo é uma sequência lógica de instruções e que não se limita apenas à computação.
Compreenderemos o conceito de linguagem de programação, os principais paradigmas envolvidos e entenderemos que essas linguagens foram criadas para dizer ao computador e aos elementos de sua arquitetura o que eles têm que fazer e quando têm que fazer.
Histórico dos computadores
Em 300 a.C., na Babilônia (atual Iraque), as máquinas de contagem, conhecidas como ábacos, já eram utilizadas no senso e para outros tipos de cálculos.
Histórico dos computadores
A primeira ferramenta de contagem acionada por engrenagem foi o relógio de cálculo de Schickard, inventado em 1623.
Histórico dos computadores
Em 1642, o filósofo e matemático Blaise Pascal, aos 19 anos, inventou a pascaline como uma ajuda para o pai, que era cobrador de impostos. Pascal construiu 50 unidades dessa calculadora de função única acionada por engrenagem, cuja única funcionalidade era realizar adição.
Histórico dos computadores
Note que estamos falando de uma “tecnologia” (assim era para a época) que durou até a era atual, pois nos painéis dos carros a parte do hodômetro do velocímetro usava o mesmo mecanismo que a Pascaline para incrementar a próxima roda após cada rotação completa da roda anterior.
Histórico dos computadores
Com o sistema binário, os inventores foram capazes de usar sistemas de cartões perfurados para os primeiros computadores eletrônicos. A International Business Machines (IBM) posteriormente adotaria essa tecnologia e a disponibilizaria para usos mais amplos.
Histórico dos computadores
Para atender às demandas de orientação de mísseis durante a Segunda Guerra Mundial, a IBM e a Universidade de Harvard se uniram para criar (em 1944) o Harvard Mark I, um computador mecânico de um metro e oitenta de altura. O computador que possuía uma estrutura gigantesca e era considerado lento, porém conseguia realizar cálculos extensos.
Histórico dos computadores
A arquitetura de John Von Neumann
Consultor do projeto ENIAC e professor de matemática na Universidade de Princeton, John Von Neumann acreditava que o processo de programação dos computadores poderia ser facilitado se os programas e os dados ficassem armazenados no mesmo espaço de memória (conceito de programa armazenado). Em 1946, Neumann começou a trabalhar no projeto do IAS, primeiro computador criado pelo Instituto de Estudos Avançados de Princeton (IAS).
Essa ideia é geralmente atribuída ao matemático John von Neumann. Mas Alan Turing desenvolveu a ideia ao mesmo tempo.
A primeira publicação da ideia ocorreu em uma proposta em 1945, por von Neumann para um novo computador, o EDVAC.
Aula Informática na Educação
Acadêmico: Marcos Backes Rocha
16
IAS
O IAS foi baseado na arquitetura de Von Neumann, possuía uma Unidade Central de Processamento que continha uma Unidade Lógica e Aritmética e uma Unidade de Controle do Programa que interagiam com a Memória Principal e os Dispositivos de Entrada e Saída (E/S).
Histórico dos computadores
Modelo de
Von Neumann
De acordo com Von Neumann, cada item tinha a seguinte função:
Memória principal: local onde ficam armazenados os programas utilizados e os dados;
Histórico dos computadores
Modelo de Von Neumann
Unidade de Processamento (CPU):
Unidade de controle: contém as instruções que devem ser executadas;
Unidade lógica e aritmética: responsável por executar as instruções;
Histórico dos computadores
Modelo de
Von Neumann
Dispositivos de entrada e saída: por onde entram as informações inseridas pelo usuário. Faz a interface com equipamentos externos, como mouse e teclado, por exemplo.
Essa arquitetura se tornou referência e é utilizada pela maioria dos computadores até os dias de hoje.
Histórico dos computadores
Em 1949, surgiu o EDVAC, criado por Von Neumann e os mesmos criadores do ENIAC.
Histórico dos computadores
FORTRAN: primeira linguagem de programação
Em 1957, surgiu a primeira linguagem de programação para computadores: FORTRAN (FORmula TRANslation). Desenvolvida por John Backus e sua equipe de 13 programadores, a linguagem era considerada de alto nível e foi utilizada pela IBM no modelo 704. Em seguida, outros fabricantes desenvolveram compiladores para o Fortran e conseguiram assim produzir diversos tipos de programas para seus computadores.
Histórico dos computadores
Linguagem de alto nível
Compiladores
Aula Informática na Educação
Acadêmico: Marcos Backes Rocha
22
1959
Aula Informática na Educação
Acadêmico: Marcos Backes Rocha
23
Histórico dos computadores
O primeiro computador pessoal estava disponível em 1975: o computador MITS Altair. Ele vinha em uma caixa e tinha que ser montado pelo comprador. Este foi o computador que inspirou Bill Gates, então calouro de Harvard, a mudar o rumo de sua carreira e criar a empresa chamada Microsoft.
Histórico dos computadores
O primeiro computador pessoal estava disponível em 1975: o computador MITS Altair. Ele vinha em uma caixa e tinha que ser montado pelo comprador. Este foi o computador que inspirou Bill Gates, então calouro de Harvard, a mudar o rumo de sua carreira e criar a empresa chamada Microsoft.
Histórico dos computadores
ENIAC
Fortran
Geração zero: computadores mecânicos (1642-1945)
Primeira geração: válvulas (1945-1955)
Segunda geração: transistores (1954-1965)
Terceira geração: circuitos integrados (1965-1980)
Gerações posteriores: VLSI (1980-atual)
ARQUITETURA DE UM COMPUTADOR
Em resumo, a arquitetura do computador se refere a como um sistema de computador é projetado e com quais tecnologias ele é compatível.
No computador, a CPU executa cada instrução fornecida em uma série de etapas. Essa série é chamada ciclo da máquina e é repetida para cada instrução. Um ciclo de máquina envolve buscar instruções, decodificar as instruções, transferir os dados e executar as instruções.
ARQUITETURA DE UM COMPUTADOR
Em resumo, a arquitetura do computador se refere a como um sistema de computador é projetado e com quais tecnologiasele é compatível.
ARQUITETURA DE UM COMPUTADOR
A arquitetura do computador é composta de circuitos eletrônicos, que operam com sinais binários (0 e 1). A principal razão para esta arquitetura ser binária e não decimal é sua simplicidade e baixo custo de implementação.
Kilo (kB) = 1.000 bytes = 10³ decimal
Mega (MB) = 1.000.000 bytes = 106 decimal
Giga (GB) = 1.000.000.000 bytes = 109 decimal
Tera (TB) = 1.000.000.000.000 bytes = 1012 decimal
Kibi (KiB) = 1.024 bytes = 210 binário
Mebi (MiB) = 1.048.576 bytes= 220 binário
Gibi (GiB) = 1.073.741.824 bytes = 230 binário
Tebi (TiB) = 1.099.511.627.776 bytes = 240 binário
ARQUITETURA DE UM COMPUTADOR
Exemplo:
Um HD de 500 GB tem aproximadamente 500.000.000.000 de bytes (500 x 1.000.000.000).
Ao usar o cálculo binário em GB, (500.000.000.000 / 1.073.741.824) os mesmos 500 GB aparecerão como 465 gigabytes.
Por isso que o Windows exibirá uma unidade de 500 GB como 465 GB.
ARQUITETURA DE UM COMPUTADOR
Observe que a capacidade dos HDs de 16 TB (16.000.000.000.000 bytes) é exibida em valor decimal (círculo vermelho) e em valor binário (círculo azul).
Desenvolvimento de algoritmos
O que são algoritmos
Um algoritmo consiste numa sequência de passos que, se executados na ordem correta, realizam uma determinada tarefa.
Programação de Computadores
Edelweiss e Livi apontam que um algoritmo deve:
Possuir um estado inicial;
Consistir em uma sequência lógica finita de ações;
Produzir dados de saída corretos;
Possuir um estado final.
O que são algoritmos
Podemos definir algoritmo como um procedimento ou fórmula para resolver um problema com base na realização de uma sequência de ações especificadas. Um programa de computador pode ser visto como um algoritmo elaborado. Atente para a palavra utilizada na frase anterior "pode", pois, afinal, um programa é um algoritmo, mas um algoritmo não é um programa.
Programação de Computadores
Exemplos de algoritmos
Algoritmo que leve você de casa até a faculdade;
Algoritmo para fazer um bolo;
Algoritmo de como dirigir;
Algoritmo de como resolver um cálculo matemático;
Programação de Computadores
Tipos de Algoritmos
•
•
Computacionais Não computacionais
Exemplo de algoritmo não computacional:
Algoritmo para preparar um sanduíche misto
passo 1 - separe 2 fatias de pão de caixa
passo 2 - separe 2 fatias de queijo e 2 fatias de presunto
passo 3 - dobre as fatias de presunto e queijo e coloque entre as duas fatias de pão passo 4 - coloque o sanduíche no micro-ondas para aquecer
Algoritmos
Algoritmos
Algoritmo "exemplo1"
Var
nome: caractere
Inicio
Escreval("Informe um nome")
Leia(nome)
Escreval("O nome informado foi ", nome)
Fimalgoritmo
Ambiente de ensino de programação
Visualg
Exemplo 1
Visualg
•
•
•
Gratuito
Bastante utilizado nesta disciplina Disponível em vários sites para download
Visualg
Para que todas as pessoas envolvidas em um projeto possam entender o seu algoritmo, é necessário estabelecer uma convenção ou conjunto de regras que regulem a escrita deste algoritmo. A este conjunto denominamos regras de sintaxe.
Visualg
Portugol C C++ Go SQL Perl
Algoritmo "Olá mundo"
Var
Inicio
Escreval("Olá mundo")
Fimalgoritmo #include <stdio.h>
int main() {
printf("Olá, Mundo!\n");
return 0;
} #include <iostream>
int main() {
std::cout << "Olá, Mundo!" << std::endl;
return 0;
} package main
import "fmt"
func main() {
fmt.Printf("Olá, Mundo!\n")
} SELECT "Olá, Mundo!" #!/usr/bin/env perl print "Olá, Mundo!\n";
Quando falamos em regras na computação, estamos por indicar quais tipos de comandos (estruturas de programação) e expressões podem ser utilizados. Os tipos de comandos ou estruturas são:
Estrutura sequencial – Trata-se da estrutura de controle padrão. As instruções são executadas linha por linha, na ordem em que aparecem;
Visualg
Estrutura condicional – É usada para testar uma condição. Uma sequência de instruções é executada dependendo da condição verdadeira ou falsa. Isso significa que o programa escolhe entre dois ou mais caminhos alternativos. Esta condição se refere a qualquer expressão ou valor que retorne um valor booleano, significando verdadeiro ou falso;
Visualg
Visualg
Exemplo 2
Estrutura de repetição (ou iteração) – Executa repetidamente uma série de instruções em loop, desde que a condição de parada seja verdadeira. A condição de parada pode ser predefinida ou em aberto. Um loop pode ser controlado por evento ou controlado por contador.
Um loop controlado por evento executa uma sequência de instruções até que ocorra um evento
Enquanto um controlado por contador executa as instruções um número predeterminado de vezes.
Visualg
Exemplo 3
Exemplo 4
Variáveis
Nos três tipos de estruturas existem expressões envolvendo a utilização de dados. Não é usual trabalhar diretamente com os valores dos dados; deste modo, são utilizadas variáveis que os armazenam para que sejam realizadas as operações. Uma variável corresponde a um lugar físico na memória do computador, onde ficarão os bits referente aos dados.
Visualg
Estrutura sequencial
Estrutura condicional
Estrutura de repetição (ou iteração)
Variáveis
Acrescentam-se ainda os valores constantes que, diferentemente das variáveis, não podem ser mudados. Por exemplo, o valor de pi na matemática é 3,1415...; na física e na geografia, ele tem o mesmo valor, logo, é uma constante. O saldo bancário é um valor que será modificado, podendo ser de mil reais, dois mil, dois reais ou zero. Chamamos este tipo de valor variável.
Visualg
// Exemplo de sintaxe de um algoritmo
Problema: precisamos mostrar na tela do computador a área do círculo com base no dado de entrada (raio) que será informado pelo usuário, sabendo que sua fórmula é
área = pi · raio².
Resposta: um possível algoritmo que resolve este problema é:
inicio_do_algoritmo
Primeiro passo: peça ao usuário para digitar o raio do círculo;
Segundo passo: calcule a área usando a fórmula pi · raio²;
Terceiro passo: exiba o valor na tela.
fim_do_algoritmo
Visualg
Todo fluxograma possui uma sintaxe e uma semântica muito bem definidas, apresentando símbolos específicos para cada comando, tipos de expressões padronizados e sub-rotinas predefinidas.
Enquanto a sintaxe define os símbolos, a semântica define como interpretá-los.
Fluxograma
Símbolos de um Fluxograma
Símbolos de um Fluxograma
Utilizando estes elementos, podemos representar o algoritmo do cálculo da área do círculo por meio de um fluxograma.
Veja pelo fluxograma que temos o início do algoritmo, a sequência finita de ações e o fim, todos os elementos bem definidos.
Símbolos de um Fluxograma
Um exemplo concreto do uso de algoritmo pode ser feito quando, dados dois valores, temos que encontrar qual deles é o maior e apresentá-lo na tela.
Note que existe uma condição simples: se um número X for maior que um número Y, então mostraremos o número X na tela; caso contrário (senão), apresentaremos o número Y na tela. Vamos então ao algoritmo.
Início
Pedir para o usuário fornecer valores inteiros para X e Y;
SE X > Y ENTÃO
Mostrar o valor de X na tela;
SENÃO
Mostrar o valor de Y na tela;
Fim
Símbolos de um Fluxograma
Veja que com o fluxograma fica mais prático compreender o comportamento de execução do algoritmo. Nele, temos o início, as instruções finitas e o fim. Sendo verdadeira ou falsa a comparação, o fluxograma sempre terminará no último símbolo chamado fim
Exemplo 5
TIPOS DE DADOS
inteiro: define variáveis numéricas do tipo inteiro, ou seja, sem casas decimais.
real: define variáveis numéricas do tipo real, ou seja, 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.
Nomes de variáveis
O nome de uma variável deve ter, no máximo, 63 caracteres;
O nome deve ser iniciado obrigatoriamente por uma letra ou por ‘_’;
O nome só pode possuir número se começar com letra;
O nome da variável somenteaceita: letras, números e o caractere ‘_’;
Letras gregas ou outras fora do alfabeto ocidental não são aceitas;
Algumas linguagens de programação são case sensitive, ou seja, A (maiúsculo) é diferente de a (minúsculo).
Nomes de variáveis
Exemplo de nomes válidos de variáveis Exemplo de nomes inválidos de variáveis
Note que o espaço em branco é um erro, pois pode parecer que se tratam de duas variáveis diferentes. Os caracteres especiais não devem ser utilizados em variáveis. O caracter ‘-‘ não pode ser utilizado, pois na programação ele pode ser um caractere reservado para operações de subtração.
OPERAÇÕES ARITMÉTICAS
Na montagem do algoritmo ou de um código de programação, podemos considerar as quatro operações aritméticas, que são:
Adição
Subtração
Multiplicação
Divisão
Apesar de caracterizarmos apenas a relação entre números inteiros e números reais, também podemos utilizar a operação de adição em cadeias de caracteres.
Por exemplo, considere uma variável A, que contém a cadeia “Programação”, e uma variável B, que possui a cadeia de caracteres “Computadores”. Ao fazermos C ← A + B, o resultado em C será “ProgramaçãoComputadores”. Denominamos este tipo de adição com cadeia de caracteres concatenação.
Concatenação
Exemplo 6
OPERAÇÕES ARITMÉTICAS
Veremos agora um exemplo de pseudocódigo de algoritmo que, ao receber dois números inteiros, realizará a divisão (operação div) e também obterá o resto da divisão utilizando a operação mod.
Exemplo 7
+,- Operadores unários, isto é, são aplicados a um único operando. São os operadores aritméticos de maior precedência. Exemplos: -3, +x. Enquanto o operador unário - inverte o sinal do seu operando, o operador + não altera o valor em nada o seu valor.
\ Operador de divisão inteira. Por exemplo, 5 \ 2 = 2. Tem a mesma precedência do operador de divisão tradicional.
+,-,*,/ Operadores aritméticos tradicionais de adição, subtração, multiplicação e divisão. Por convenção, * e / têm precedência sobre + e -. Para modificar a ordem de avaliação das operações, é necessário usar parênteses como em qualquer expressão aritmética.
MOD ou % Operador de módulo (isto é, resto da divisão inteira). Por exemplo, 8 MOD 3 = 2. Tem a mesma precedência do operador de divisão tradicional.
^ Operador de potenciação. Por exemplo, 5 ^ 2 = 25. Tem a maior precedência entre os operadores aritméticos binários (aqueles que têm dois operandos).
Resumo
Atividades
Elabore um algoritmo capaz de calcular a área de um quadrado (Área = Lado * Lado).
Construa um algoritmo que receba o peso de uma pessoa em quilos, calcule e mostre esse peso em gramas e miligramas.
Faça um algoritmo que receba uma hora (para tanto, utilize três variáveis: uma para a hora, uma para os minutos e outra para os segundos), calcule e mostre a hora convertida em minutos, bem como a convertida em segundos.
Elabore um algoritmo que receba o preço de um produto e a porcentagem de aumento. Ele deve, ainda, calcular e mostrar esse preço com aumento.
Tendo por base os critérios de avaliação desta disciplina, construa uma algoritmo capaz de receber as notas, indicar se o aluno está aprovado ou reprovado. O algoritmo deve considerar todos os critérios de avaliação (AV1, AV2, MÉDIA, REPOSITIVA, EXEMA, ATIVIDADES, ETC..)
Obrigado !!!
image2.png
image3.png
image4.png
image5.gif
image6.jpeg
image7.jpg
image8.jpeg
image9.png
image10.png
image11.png
image12.png
image13.png
image14.jpeg
image15.png
image16.jpg
image17.png
image18.jpeg
image19.jpeg
image23.jpeg
image24.jpeg
image25.jpeg
image26.png
image27.png
image28.jpeg
image29.jpeg
image30.jpeg
image20.jpeg
image21.jpeg
image22.jpeg
image31.jpeg
image32.jpeg
image33.png
image34.jpeg
image1.jpg
image35.jpeg
image36.png
image37.png
image38.png
image39.png
image40.png
image41.png
image42.png
image43.png
image44.png
image45.png
image46.png
image47.png
image48.png
image49.png
image50.png