Buscar

02. INTRODUÇÃO À COMPUTAÇÃO

Prévia do material em texto

Introdução à Programação
FARRER, H. et. alli. Algoritmos Estruturados. 3a. 
edição. Rio de Janeiro. LTC – 1999. Capítulo 0
GUIMARÃES, A. M. e LAGES, N. A. C. Algoritmos e 
Estrutura de Dados. 1a. edição. Rio de Janeiro. 
LTC, 1985.
BAC004-Informática-Teórica-Fabiana C Guedes 2
Introdução
 A tarefa de processamento de dados 
consiste em tomar certa informação, 
processá-la e obter o resultado desejado.
BAC004-Informática-Teórica-Fabiana C Guedes 3
Introdução – Esquema do 
Computador Digital
BAC004-Informática-Teórica-Fabiana C Guedes 4
Introdução – Esquema do 
Computador Digital
 Unidade de Entrada
 Traduz informação de uma grande variedade de 
dispositivos em um código que a unidade central 
de processamento é capaz de entender.
 Memória
 Armazena os dados e os programas que 
“manipulam” estes dados.
 Unidade Lógica e Aritmética
 Nesta unidade são feitos todos os cálculos 
aritméticos e qualquer manipulação de dados, 
sejam eles numéricos ou não.
BAC004-Informática-Teórica-Fabiana C Guedes 5
Introdução – Esquema do 
Computador Digital
 Unidade de Controle
 É a unidade responsável pelo fluxo dos dados. Ela obtém 
dados armazenados na memória e interpreta-os. Controla 
a transferência de dados da memória para a unidade 
lógica e aritmética, da entrada para a memória e da 
memória para a saída.
 Unidade de Saída
 Os dados processados são convertidos, por esta unidade, 
de impulsos elétricos em palavras ou números que podem 
ser “escritos” em impressoras ou “mostrados” em vídeos 
ou numa série de outros dispositivos.
BAC004-Informática-Teórica-Fabiana C Guedes 6
Introdução
 Sistema
 Conjunto de objetos, dotado de 
propriedades características, capazes de 
se interagir, dentro de um determinado 
contexto.
 Estado 
 Conjunto de propriedades relevantes dos 
objetos de um dado sistema, em um 
determinado instante.
BAC004-Informática-Teórica-Fabiana C Guedes 7
Introdução
 Ação 
 Evento que ocorre em um período de 
tempo finito estabelecendo um efeito 
intencionado e bem definido.
 Toda vez que um determinado sistema 
estiver num estado En, e sofrer a 
aplicação da ação an, será levado ao 
estado En+1, após um certo intervalo de 
tempo.
BAC004-Informática-Teórica-Fabiana C Guedes 8
Introdução
 Processo
 Seqüência temporal de (sub) ações, cujo 
efeito acumulado é igual ao efeito de um 
único evento equivalente.
 Programa
 “Formulações concretas de algoritmos 
abstratos baseados em representações e 
estruturas específicas de dados” (Wirth).
BAC004-Informática-Teórica-Fabiana C Guedes 9
Introdução
 Algoritmo
 Descrição de um padrão de 
comportamento (o que fazer) expressa 
em termos de um repertório finito e bem 
inteligível de ações primitivas (como 
fazer), as quais, supõe-se, a priori, sejam 
possíveis de executar.
 Programar é basicamente construir 
algoritmos.
BAC004-Informática-Teórica-Fabiana C Guedes 10
Introdução
 Algoritmo
 Descrição de um conjunto de comandos que, 
obedecidos resultam numa sucessão finita de 
ações.
 Um algoritmo se destina a resolver um 
problema: fixa um padrão de comportamento a 
ser seguido, uma norma de execução a ser 
trilhada, para se atingir como o resultado final, a 
solução de um problema.
BAC004-Informática-Teórica-Fabiana C Guedes 11
Introdução
 Algoritmo
 Ao escrever um algoritmo, começa-se 
considerando o acontecimento como um 
processo, dividindo-o em uma seqüência de 
(sub) ações que deverão ser realizadas 
sucessivamente.
 É necessário o uso de um conjunto de 
mecanismos que permita o desenvolvimento de 
algoritmos, e que seja conciso, para evitar 
ambigüidades e libertar o programador do rigor 
e limitações das linguagens de programação.
BAC004-Informática-Teórica-Fabiana C Guedes 12
Refinamentos
 Um algoritmo é considerado completo 
se os seus comandos forem do 
entendimento do seu destinatário.
 Um comando que não for do 
entendimento do destinatário terá de 
ser desdobrado em novos comandos, 
que constituirão um refinamento do 
comando inicial.
BAC004-Informática-Teórica-Fabiana C Guedes 13
Refinamentos
 Se um algoritmo é formado não 
apenas por um comando, mas por 
vários, isto significa que na sua 
execução não se consideram apenas 
o estado inicial e o final de uma ação 
dele resultante, mas que se 
consideram também estados 
intermediários que delimitam as 
ações decorrentes de cada comando.
BAC004-Informática-Teórica-Fabiana C Guedes 14
Refinamentos
 Um algoritmo e os seus refinamentos 
são formados por comandos, que 
determinam as ações a serem 
executadas pelo seu destinatário e por 
estruturas de controle que 
determinam a ordem em que os 
comandos devem ser executados, se 
devem ser executados ou não e 
quando devem ser repetidos.
BAC004-Informática-Teórica-Fabiana C Guedes 15
Refinamentos
 Se um comando de um refinamento for 
um tanto vago, ele poderá, por sua 
vez, ser desdobrado em novos 
comandos, produzindo-se o 
refinamento de um refinamento, e 
assim sucessivamente.
BAC004-Informática-Teórica-Fabiana C Guedes 16
Algoritmos Estruturados
 Objetivos da Técnica
 Facilitar o desenvolvimento dos 
algoritmos;
 Facilitar o seu entendimento;
 Antecipar a comprovação da sua 
correção;
 Permitir que o seu desenvolvimento 
possa ser empreendido simultaneamente 
por uma equipe de pessoas.
BAC004-Informática-Teórica-Fabiana C Guedes 17
Algoritmos Estruturados
 O desenvolvimento estruturado preconiza 
que:
 Os algoritmos sejam desenvolvidos por 
refinamentos sucessivos. 
 Os sucessivos refinamentos são módulos, que 
delimitam poucas funções e são os mais 
independentes possíveis, isto é, conservam 
poucos vínculos com outros módulos.
 Nos módulos deve ser usado um número 
limitado de diferentes comandos e de 
diferentes estruturas de controle.
BAC004-Informática-Teórica-Fabiana C Guedes 18
Fluxograma
• Um tipo de representação algorítmica.
• Escrever os passos a serem seguidos 
para resolver o problema
• Utiliza símbolos gráficos predefinidos
• Mais fácil entendimento do que a 
narrativa
• É necessário aprender a simbologia e o 
algoritmo não apresenta muitos detalhes
BAC004-Informática-Teórica-Fabiana C Guedes 19
Fluxograma
• Exemplo: Multiplicar dois números
INÍCIO N1, N2
FIM
M = N1 * N2
M
BAC004-Informática-Teórica-Fabiana C Guedes 20
Linguagens de Programação
 Para armazenar um algoritmo na 
memória de um computador e para 
que ele possa, em seguida, comandar 
as operações a serem executadas, é 
necessário que ele seja programado, 
isto é, que seja transcrito para uma 
linguagem que o computador possa 
“enteder”, direta ou indiretamente.
BAC004-Informática-Teórica-Fabiana C Guedes 21
Linguagens de Programação
 Os computadores só podem executar 
diretamente os algoritmos expressos 
em linguagem de máquina, que é um 
conjunto de instruções capazes de 
ativar diretamente os dispositivos 
eletrônicos do computador.
BAC004-Informática-Teórica-Fabiana C Guedes 22
Linguagens de Programação
 Logo surgiu a idéia de se escreverem programas 
em Linguagem simbólica, mais conhecida por 
Linguagem Assembly ou Linguagem montadora.
 Um programa em Assembly, para controlar o 
computador, deve primeiro ser transformado em 
linguagem de máquina. Como cada comando da 
linguagem Assembly corresponde a um comando 
em linguagem de máquina, esta transformação 
pode ser feita facilmente pelo próprio computador, 
por meio de um programa chamado montador ou 
Assembler.
BAC004-Informática-Teórica-Fabiana C Guedes 23
Linguagens de Programação
 Criação de linguagens em que a programação era 
feita por meio de uma notação matemáticae de 
algumas palavras da língua inglesa, deixando ao 
próprio computador a tarefa de traduzir este 
programa para a linguagem de máquina, por meio 
de um programa chamado compilador.
 A primeira destas linguagens, que teve ampla 
aceitação, surgiu em 1957 e é ainda hoje utilizada. 
Trata-se da linguagem FORTRAN, nome formado 
com partes das palavras “Formula Translation”.
BAC004-Informática-Teórica-Fabiana C Guedes 24
Linguagens de Programação
 A escolha da linguagem de programação 
para se usar em um computador depende, 
antes de tudo, da existência de um 
programa compilador (que traduza o 
algoritmo escrito na linguagem escolhida 
para a linguagem de máquina) ou de um 
programa interpretador (que interprete 
cada comando do programa e execute uma 
série de instruções que a ele 
correspondem).
BAC004-Informática-Teórica-Fabiana C Guedes 25
Tópicos para Discussão
 Esquema do Computador Digital
 Sistema – Estado – Ação – Processo – Programa
 Algoritmo
 Comentários
 Pseudo-comandos
 Passos do algoritmo
 Refinamentos
 Algoritmos Estruturados
 Linguagens de Programação
BAC004-Informática-Teórica-Fabiana C Guedes 26
A linguagem C
Alguns slides foram retirados 
do material do professor 
Wandré Veloso
BAC004-Informática-Teórica-Fabiana C Guedes 27
A Linguagem C
• É uma linguagem de médio nível, é uma linguagem 
que não está tão afastada da máquina.
• C é uma linguagem portável - um programa 
desenvolvido para uma máquina pode facilmente 
migrar para outra sem muitas alterações.
• O código gerado para um programa C é mais 
resumido (otimizado).
• Existem versões compiladas e interpretadas de C. 
As versões compiladas são mais rápidas, mas as 
versões interpretadas são preferidas quando se 
quer depurar um programa.
BAC004-Informática-Teórica-Fabiana C Guedes 28
Palavras Chaves
• Palavras reservadas da linguagem 
ANSI C:
– auto, double, int, struct, typedef, static, 
break, else, long, switch, char, while, 
case, enum, register, extern, return, union, 
const, float, short, unsigned, continue, for, 
signed, void, default, goto, sizeof, volatile, 
do, if.
BAC004-Informática-Teórica-Fabiana C Guedes 29
Palavras Chaves
• Palavras reservadas da linguagem C++
– catch, inline, private, template, class, new, 
protected, this, delete, operator, public, virtual, 
friend.
• Todas as palavras chaves de C e C++ são 
minúsculas. 
• A linguagem faz distinção entre palavras 
maiúsculas e minúsculas.
BAC004-Informática-Teórica-Fabiana C Guedes 30
Biblioteca de Funções e 
Linkedição
• Além das palavras chaves, todo compilador C vem 
com uma biblioteca padrão de funções que facilitam 
aos programadores a realização de tarefas como ler 
uma variável qualquer, comparar cadeias de 
caracteres, obter a data do sistema operacional.
• Existe uma biblioteca básica definida pelo padrão 
ANSI, mas alguns compiladores C vem com 
algumas funções extras para aplicações gráficas por 
exemplo.
• As bibliotecas devem ser incluídas nos programas 
que fazem uso dela e as funções usadas pelo 
programa serão LINKEDITADOS (ligados) ao 
programa.
BAC004-Informática-Teórica-Fabiana C Guedes 31
Anatomia de um Programa
• Todo programa em C segue uma estrutura básica, 
conforme o esquema apresentado abaixo:
[inclusão de bibliotecas]
[declaração de constantes e variáveis globais]
[declaração dos protótipos de funções]
int main ( )
{
[corpo do programa principal]
}
[implementação das funções do programa]
BAC004-Informática-Teórica-Fabiana C Guedes 32
Primeiro Programa
/* ProgC001.cpp
 Anatomia de um programa C
 Autor: Fabiana
 Data: 08/03/2013 */
# include <iostream>
# include <cstdlib>
 int main( ) {
 std::cout << "UNIFEI\n";
 std::cout << "Campus Itabira\n";
 std::cout << "2013";
 system("PAUSE > null");
 return 0;
 }
Comentário de mais de uma linha
Bibliotecas
Função Principal
Impressão em tela.
Fornece uma pausa 
no sistema, 
possibilitando a 
visualização do 
resultado
Retorno
BAC004-Informática-Teórica-Fabiana C Guedes 33
Função main
• Todo programa C++ deve existir uma 
única função chamada main. Ela 
marca o ponto de partida do programa
• Se um programa for constituído de 
uma única função, esta será main
• O programa termina quando for 
encerrada a execução da função 
main
BAC004-Informática-Teórica-Fabiana C Guedes 34
Função main
• A função main do código anterior é do tipo 
int
• Significa que ela deverá retornar um 
número inteiro
• A instrução return 0; é que caracteriza 
esse retorno
• Quando o programa dá algum tipo de erro, 
o retorno da função main pode ser 
diferente de 0.
BAC004-Informática-Teórica-Fabiana C Guedes 35
Chaves
• Toda função ou bloco C++ deve 
começar com uma chave de abertura 
de bloco { e terminar com uma de 
fechamento de bloco }
• As chaves delimitam o corpo da 
função
BAC004-Informática-Teórica-Fabiana C Guedes 36
Espaços em Branco
• O compilador ignora os espaços em branco
• Podemos colocar diversas instruções em 
uma única linha ou até saltar linhas 
diversas
• Exceções: Não usar espaços em textos 
escritos entre aspas, nomes de funções, 
operadores, comandos de linguagem e 
diretivas de pré-processador
• Ex: #include <iostream>
BAC004-Informática-Teórica-Fabiana C Guedes 37
Diretivas do pré-processador
• Não é uma instrução da linguagem C++ 
(não há ponto-e-vírgula no final)
• O pré-processador é um programa que 
examina o programa-fonte em C++ e 
executa certas modificações com base em 
instruções chamadas de diretivas
• Toda diretiva é iniciada pelo símbolo # e 
seu texto deve ser escrito em uma única 
linha
BAC004-Informática-Teórica-Fabiana C Guedes 38
Diretiva #include
• Provoca a inclusão de outro arquivo em nosso programa-fonte
• Substitui a linha contendo essa diretiva pelo conteúdo do arquivo
• A substituição é feita antes de o programa ser compilado
• O arquivo iostream contém as definições e declarações necessárias 
para o uso de objetos stream, no nosso caso cout, e também para 
o uso da função system()
• O arquivo cstdlib contém funções envolvendo alocação de 
memória, controle de processos, conversões e outras
• Se usarmos os sinais < e > o arquivo é procurado somente na pasta 
INCLUDE do compilador
• Se usarmos aspas duplas, o arquivo é procurado primeiramente na 
pasta atual e depois, se não for encontrado, na pasta INCLUDE
BAC004-Informática-Teórica-Fabiana C Guedes 39
Diretiva using
• O namespace é uma região que agrega um 
identificador a todos os nomes declarados dentro dela
• Em outras palavras, namespace é um sobrenome
• O objeto cout está declarado no namespace std
• Para usarmos o cout deveríamos escrever a instrução 
deste modo:
• std::cout << "2013";
• Para que não seja necessário escrevermos std em 
todas as instruções, usamos o comando
• using namespace std;
BAC004-Informática-Teórica-Fabiana C Guedes 40
Utilização do using
/* ProgC001a.cpp Utilização de using Autor: Fabiana
 Data: 08/03/2013 */
# include <iostream>
# include <cstdlib>
using namespace std;
 int main( ) {
 cout << "UNIFEI\n";
 cout << "Campus Itabira\n";
 cout << "2013";
 system("PAUSE > null");
 return 0;
 }
Diretiva using
Não é necessário 
escrever std::cout
BAC004-Informática-Teórica-Fabiana C Guedes 41
Cout – códigos especiais
• O objeto cout não quebra a linha no final da 
impressão, por isso devemos utilizar um código que é 
formado pelo sinal \ (barra invertida) e outros 
caracteres.
– \n Nova linha
– \t Tabulação
– \b Retrocesso
– \f Salta página
– \a Toca o auto-falante 
(não usar nos 
computadores da 
faculdade, senão trava)
– \r Voltao cursor para o 
início da linha
– \0 Zero (Null)
– \\ \ (barra invertida)
– \' Aspas simples
– \" Aspas duplas
– \xdd Representação 
hexadecimal de caractere da 
tabela ASCII
BAC004-Informática-Teórica-Fabiana C Guedes 42
Comentários
• Têm a função de ajudar na documentação do código-
fonte do programa
• Existem dois tipos de comentários
– De uma linha
• int main() //função main
– De várias linhas
• /*No nosso primeiro programa escrevemos 
somente uma frase na tela e esperamos o 
usuário apertar alguma tecla*/
• Não podemos combinar comentários de várias linhas
• /* isso não se pode /* fazer*/
BAC004-Informática-Teórica-Fabiana C Guedes 43
Exercício
• Modifique o programa PROGC001a 
colocando o seu nome e número de 
matrícula. O seu nome e a matrícula 
devem ficar em linhas diferentes.
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43

Continue navegando