Sie sind auf Seite 1von 26

UFCD 6051

Programao-Algoritmia
TEAC-PRO 2014
Rui Silva
Sesses: 1, 2, 3 e 4
12/05/2014
Introduo
Carga horria : 25 horas;
Avaliao:
Aquisio de conhecimentos - 40%
Desempenho profisisonal -
30%
Relacional - 10% Comportamental - 20%
Participao
Aplicao de
conhecimentos
Motivao
Aquisio de
conhecimentos
Mobilizao de
competncias em
novos contextos
Adaptao a
uma nova
tarefa
Relaes
interpessoais
Trabalho em
equipa
Iniciativa Autonomia Pontualidade Assiduidade
5% 10% 10% 15% 10% 20% 5% 5% 5% 5% 5% 5%
7 Fichas de Trabalho
Teste de avaliao final
VisuAlg
Objetivos da UFCD
Identificar e dominar a utilizao dos diferentes tipos de variveis.
Elaborar o algoritmo de resoluo para um dado um problema.
Descrever a estrutura de um algoritmo identificando as palavras-chave,
variveis e funes.
Elaborar algoritmos, sem ambiguidades, eficazes e eficientes.
Contedos da Sesso
Conceitos introdutrios
Linguagens de programao
Programas
Linguagens de baixo nvel
Linguagens de alto nvel
Compiladores/interpretadores
Geraes das linguagens
Linguagens de Programao
O que uma linguagem de programao?
um mtodo padronizado para expressar instrues para um computador, ou seja,
um conjunto de regras sintticas e semnticas usadas para definir um programa
de computador. Uma linguagem permite que um programador especifique
precisamente sobre quais dados um computador vai atuar, como estes dados
sero armazenados ou transmitidos e quais aes devem ser tomadas sob vrias
circunstncias.
Linguagem que o computador entende: 00010001
Linguagens de Programao
Most Popular Programming Languages of 2014
Programa
Um programa de computador ou programa informtico um conjunto de
instrues que descrevem uma tarefa a ser realizada por um computador.
O termo pode ser uma referncia ao cdigo fonte, escrito nalguma linguagem de
programao, ou ao arquivo que contm a forma executvel deste cdigo fonte.
Programa
#include <iostream>
using namespace std;
int main()
{
cout << "Ol, Mundo!" << endl;
return 0;
}
Word.exe
Programa
Dados de
entrada
Programa
Dados de
Sada
Exemplo: soma 2 nmeros
#include <stdio.h>
main()
{
int a, b, s;
printf("Introduza um nmero:\n");
scanf("%d", &a);
printf("Introduza outro nmero:\n");
scanf("%d", &b);
s = a + b;
printf("A soma de %d com %d d %d\n", a, b, s);
}
a=2;
b=3;
S=5
Linguagens de Baixo Nvel Vs. Alto Nvel
As linguagens de Baixo Nvel so aquelas voltadas para a mquina, ou seja
as que so escritas utilizando as instrues do microprocessador do
computador. So genericamente chamadas de linguagens Assembly.
Implica que o programador tenha conhecimento profundo do hardware da
mquina para a qual est a elaborar o programa.
Vantagens: Programas so executados com maior velocidade de
processamento. Os programas ocupam menos espao na memria.
Desvantagens: Em geral, programas em Assembly tem pouca
portabilidade, isto , um cdigo gerado para um tipo de processador no
serve para outro. Cdigos Assembly no so estruturados, tornando a
programao mais difcil
Linguagens de Baixo Nvel Vs. Alto Nvel
variable:
.message db "Ol, Mundo!$"
code:
mov ah, 9
mov dx, offset .message
int 0x21
ret
Linguagens de Baixo Nvel Vs. Alto Nvel
Linguagens de Alto Nvel
So linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais
estruturada tornando o seu cdigo mais fcil de se entender, e de editar
programas, elas necessitam de compiladores ou de interpretadores, para
executar os comandos de uma certa linguagem.
Vantagens: Por serem compiladas ou interpretadas, tem maior
portabilidade podendo ser executados em varias plataformas com
pouqussimas modificaes. Em geral, a programao torna-se mais fcil
por causa do maior ou menor grau de estruturao de suas linguagens.
Desvantagens: Em geral, as rotinas geradas (em linguagem de mquina)
so mais genricas e portanto mais complexas e por isso so mais lentas e
ocupam mais memria.
Linguagens de Baixo Nvel Vs. Alto Nvel
Pascal
program OlaMundo(output);
begin
WriteLn('Ol, Mundo!');
end.
PHP
<?php
echo "Ol, Mundo!";
?>
Python
print Ol, Mundo!
Visual Basic
Private Sub Form_Load()
Print "Ol, Mundo!"
End Sub
J ava
public class OlaMundo {
public static void main(String[] args) {
System.out.println("Ol, Mundo!");
}
}
C++
#include <iostream>
using namespace std;
int main()
{
cout << "Ol, Mundo!" << endl;
return 0;
}
Interpretadores e Compiladores
Compiladores e interpretadores so formas de traduo de um cdigo
geralmente de alto nvel para um cdigo que o computador (a mquina)
interprete. Este tradutor tem a funo de traduzir uma linguagem abstrata
para uma linguagem binria.
Interpretadores e Compiladores
Interpretadores e Compiladores
Fases de um Compilador
Interpretadores e Compiladores
Interpretadores so programas de computador que leem um cdigo fonte
de uma linguagem de programao e convertem-nos em cdigo executvel.
O seu funcionamento pode variar de acordo com a implementao.
Em muitos casos o interpretador l linha-a-linha e converte em cdigo
objeto medida que vai executando o programa. Linguagens interpretadas so
mais dinmicas por no precisarem escrever-compilar-testar-corrigir-compilar-
testar-distribuir, e sim escrever-testar-corrigir-escrever-testar-distribuir.
Mas existem tambm linguagens que funcionam como interpretadores e
compiladores, como: C, Python, BASIC, entre outros.
Interpretadores
Cada execuo do programa precisa ser novamente traduzido e interpretado.
Interpretadores e Compiladores
Interpretadores
O interpretador traduz o cdigo linha a linha.
O cdigo fonte no totalmente traduzido antes de ser
executado.
No existem fases distintas nem se produz cdigo
intermedirio.
Passa o tempo todo a ler e a traduzir cdigo.
Interpretadores e Compiladores
Interpretadores e Compiladores
http://www.trypython.org/# http://codepad.org/
Interpretadores Online
Geraes das Linguagens
usual atribuir geraes s linguagens-mquina, assembly e de alto nvel.
Primeira gerao: Linguagem mquina.
Segunda gerao: Criaram-se as primeiras linguagens assembler.
Terceira gerao: Criam-se as primeiras linguagens
de alto nvel. Ex: C, Pascal, Cobol
Quarta gerao: So linguagens capazes de gerar cdigo por si s,
so os chamados RAD, com o qual pode-se realizar aplicaes sem
ser um expert na linguagem. Aqui tambm se encontram as linguagens orientadas
a objetos, tornando possvel a reutilizao de partes do cdigo para outros programas.
Ex: Visual, Natural Adabes
Quinta gerao: Aqui se encontram as linguagens orientadas
inteligncia artificial. Estas linguagens ainda esto pouco desenvolvidas. Ex: LISP
Geraes das Linguagens
Fases de desenvolvimento de um programa
Um problema ou uma determinada tarefa, a resolver ou desenvolver por meios
informticos, requer a realizao dos seguintes passos :
Anlise de problemas
- Compreenso do problema
- Dados de entrada
- Dados de sada
- Relaes
Fases de desenvolvimento de um programa
Formulao de um algoritmo
Codificao
Deteo de erros
Testes
Otimizao
Fases de desenvolvimento de um programa
A concentrao e o investimento de tempo nos dois primeiros passos:
fase de resoluo do problema fundamental para a resoluo rpida e eficaz
de um programa, uma vez que, preciso entender de um modo aprofundado
aquilo que pedido (anlise), para depois conceber a sua resoluo
(conceo).
nesta fase que elaborado um algoritmo que visa a resoluo do problema
proposto. S depois da formulao de um algoritmo adequado, se passar
sua implementao numa linguagem de programao para posterior execuo
e teste: fase de implementao . Note-se que na maior parte das vezes s
nesta ltima fase se faz uso do computador.
Fases de desenvolvimento de um programa
O projeto de um sistema informtico ou de um simples programa requer uma
investigao preliminar: estudo terico do problema, elaborao de inquritos
para se obterem informaes sobre o sistema a informatizar, observao no
local do modo de funcionamento do sistema, registo e recolha de documentos
que representem a informao que anda em jogo, etc.
Depois de compreendido todo o funcionamento (eventualmente retendo os
aspetos positivos e propondo melhoramentos) passa-se esquematizao,
elaborando diagramas, onde de uma forma simples e bem documentada se
representam todas as entidades, processos, fluxos de informao e
armazenamentos de dados envolvidos.
Tudo isto resulta num esquema genrico, que contm em si a resoluo do
problema.
Anlise

Das könnte Ihnen auch gefallen