SlideShare uma empresa Scribd logo
1
Escola Secundária Ferreira Dias
Gestão e Programação de Sistemas
Informáticos
TIC
Algoritmia
Marcelo Rachado nº13, Ricardo Gomes Nº19
Professor: Vanda Pereira
Novembro de 2013
2
Índice
O que é um Algoritmo?-----------------------------------Pág.3
Tipos de Algoritmos---------------------------------------Pág. 4
Fluxograma--------------------------------------------------Pág.5
Pseudocodigo-----------------------------------------------Pág. 6
Estruturas de repetição-----------------------------------Pág. 7
Estrutura de decisão ou seleção------------------------Pág. 8
Símbolos da algoritmia-----------------------------------Pág. 9
O que é a programação?---------------------------------Pág. 10
Um pouco de história-------------------------------------Pág. 11
Algumas das terminologias------------------------------Pág. 12
A Estrutura de um programa---------------------------Pág. 13
Os pontos em comum de todos os programas-----Pág. 14
Anexos-------------------------------------------------------Pág. 15
Conclusão---------------------------------------------------Pág. 16
3
Introdução
Este trabalho foi feito não só pela internet mas também pelo caderno
de Programação de Sistemas Informáticas.
Esperemos que a professora goste do nosso trabalho.
4
O que é um 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.
Tal diferença pode ser reflexo da complexidade computacional aplicada,
que depende de estruturas de dados adequadas ao algoritmo. Por exemplo, um
algoritmo para se vestir pode especificar que você vista primeiro as
meias e os sapatos antes de vestir a calça enquanto outro algoritmo
especifica que você deve primeiro vestir a calça e depois as meias e
os sapatos. Fica claro que o primeiro algoritmo é mais difícil de
executar que o segundo apesar de ambos levarem ao mesmo
resultado.
5
Tipos de Algoritmos
Na descrição de algoritmos são utilizados diferentes formalismos
conforme o objetivo
ou audiência. Entre os mais comuns encontram-se o pseudo-código e
fluxogramas.
 Pseudo-código- consiste na descrição do algoritmo numa linguagem
parecidacom a linguagem natural (português, inglês ou outra) de
forma estruturada. O objectivo deste formalismo é centrar a
atenção do programador na lógica ou fluxo do algoritmo, abstraindo-
se das questões relacionadas com a sintaxe específicade uma
determinada linguagem de programação;
 Fluxograma - consiste na descrição de um algoritmo de forma
gráfica. Este formalismoinclui um conjunto de símbolos gráficos que
representação os diferentestipos de instruções anteriormente
descritas: sequência, decisão e repetição.
6
Fluxograma
Vantagens
 Representação gráfica (é mais fácil de visualizar)
 Símbolos normalizados
 Cada símbolouma funcionalidade (rápida detenção de erros)
Desvantagens
 As alterações são difíceis
 Não e possível representar os dados
 Quanto maior for, mais confuso e complexo terá de o desenhar
7
Pseudocodigo
Vantagens
 Como é baseado na linguagem corrente e mais fácil de elaborar
 Pode atingir vários níveis de complexidade, conforme o detalhe
como se escreve
 Permite acompanhar o tratamento de dados facilitando o teste
do programa
 Serve de base a própria decomentaçao
Desvantagens
 Não possui regras padrão, depende da escrita de cada
programador
 Não permite uma tão rápida visualização de erros como o
fluxograma, porque é escrito
 Pouco indicada para a analisar rotinas especificas
8
Estruturas de repetição
Com base numa condição Com base num contador
Repetir…Enquanto…Ate…
Até que…Fazer…Com…
Para…Fazer…
Estrutura de decisão ou seleção
Com base numa condiçãoCom base num seletor
Se…Swictch-Case
Então…
Senão…
9
Símbolos da algoritmia
Concentração de fluxo
10
O que é a programação?
A programação é a arte de fazer com que o computador faça
exatamente o que desejamos que ele faça.
Ao nível mais simples consistirá em enviar uma sequência de comandos
para um computador por forma a atingir um determinado objetivo. Ou que o
computador execute uma determinada função. No mundo da Microsoft, os
utilizadores do MS DOS costumavam ficheiros de texto que iriam conter
uma lista de comandos, esses ficheiros tinham uma extensão BAT. Estes
ficheiros simplesmente executam uma sequência de comandos BATCH.
Ainda é possível criar estes ficheiros em ambientes Windows mas a
realidade é que hoje em dia quase ninguém o faz. Sendo portanto muito
raramente visto.
Por exemplo, poderás estar a produzir um documento (tal como este
Tutorial o é) que por sua vez comprime vários ficheiros separados. O teu
processador de texto poderia produzir uma cópia de backup de cada
ficheiro a medida que os ias guardando as novas versões do ficheiro. No
final do dia de trabalho poderias querer por a versão mais recente do
documento (e de todos os ficheiros que dele fazem parte) num diretório de
backupdiretório/pasta. Finalmente e para deixar tudo limpinho e como deve
ser, deveria se apagar as versões antigas contidas nesse mesmo diretório
(para não criar confusão). Esta tarefa poderia ser toda por um simples
ficheiro. BAT que iríamos criar para esse solo propósito.
11
Um pouco de história
Da mesma forma que falas com um amigo numa determinada língua, é a
mesma forma como falas com um computador. Usando a língua do
computador. A única linguagem que um computador entende é a linguagem
binária, que por sua vez tem vários dialetos - é por isso que programas do
iMac não correm no teu PC e vice-versa. O código binário é, infelizmente,
muito difícil para os humanos lerem e escreverem, por isso somos de certa
obrigados a usar uma linguagem intermédia que mais tarde será traduzida
para linguagem binária É como ter o Clinton e o Yeltsin numa reunião de
comité - O Clinton fala, o intérprete repete o que ele disse em russo. Depois
o Yeltsin responde e o intérprete mais, mais uma vez repete do dito, mas
desta vez em Inglês.
De uma forma muito inovadora, decidiu-se chamar o tradutor da
linguagem intermediária para linguagem binária de intérprete. E da mesma
forma que normalmente se necessita de um interprete para traduzir de
Russo para Inglês e de outro de outro para traduzir de Chinês para Russo
(por exemplo), também precisamos de interpretes diferentes para traduzir
o Python para linguagem binária e outro para traduzir de Basic para
linguagem binária.
Na verdade os primeiros programadores tinham que introduzir
linguagem binária diretamente, e isso é muitodifícil. Então o passo seguinte
foi criar um tradutor que simplesmente traduziria uma língua comum
(digamos o inglês) para a linguagem binária. Isso fez com que as coisas
ficassem muito mais simples, então em vez de estarmos a massacrar a
memória tentando lembrar que o código 001273 05 significa adicionar 5 a 4,
os programadores por e simplesmente escreveriam add 5 4. Este simples
avanço facilitou a vida a toda a gente, estes códigos de sistema foram na
realidade as primeiras linguagens de programação, um para cada tipo de
computador. Esta linguagem passou a ser conhecida como programação por
assembler, hoje em dia ainda é utilizada em algumas tarefas muito
específicas.
12
Algumas das terminologias
Já foi dito que a programação é a arte de fazer com que um
computador faça aquilo que pretendemos que ele faça, mas o que é um
programa?
Na realidade existem dois conceitos de programas. O primeiro é aquele que
é visto do ponto de vista do utilizador - onde um programa é um ficheiro
executável que é instalado e pode-se correr vezes sem conta para se
realizar uma determinada tarefa. Por exemplo os utilizadores falam em
correr o programa de processamento de texto. Por outro lado existe a visão
do programador onde o programa é um ficheiro de texto cheio de instruções
para o computador, escrito numa linguagem de programação, e que poderá
ser traduzido num ficheiro executável. Portanto quando falar sobre um
programa presta sempre atenção a qual dos dois conceitos te referes.
Basicamente um programador "escreve" um programa numa linguagem
de alto nível, que posteriormente será interpretado para byte para que o
computador possa entender o que foi escrito. Em linguagem técnica o
programador escreve um source code e o intérprete cria um object code.
Por vezes o object code pode ter outros nomes como: P-code, código
binário, ou linguagem de máquina.
13
A Estrutura de um programa
A exata estrutura de um programaesta não só dependente da linguagem
de programação utilizada mas também como do ambiente onde esse
programa será executado. Contudo existem alguns princípios comuns a
todos:
O Carregador - qualquer programa precisa de ser carregado para a
memória pelo sistema operativo. O carregador normalmente e que
tem essa tarefa, e normalmente o carregador é criado pelo próprio
interprete.
Definindo os Dados - a maioria dos programas tem que eventualmente
em algum ponto trabalhar sobre data, portanto algures na source
code temos que definir exatamente em que tipo de data está a
trabalhar.
Statements - isto é, poderá considerado a cerne dos nossos
programas. Os statements na realidade manipulam a data que nos
definimos, fazem os cálculos necessárias, e imprimem ou guardam o
ouput, etc..
14
Os pontos em comum de todos os programas
Era uma vez um senhor chamado Edsgar Dijkstra e ele apareceu com um
conceito chamado structured programming. Que dizia que todos os
programas podiam ser estruturados das seguintes quatro maneiras:
Sequências de instruções
Loops
Branches
Módulos
Juntamente com esta estrutura, os programas também precisam de mais
algumas coisas para que se possam tornar úteis:
Data
Operações (somar, subtrair, comparar, etc..)
Capacidade de Input/Output (para poder dispor os resultados)
Uma vez que compreendas estes conceitos e como cada linguagem em
particular as implementa, então estarás apto para escrever um programa
nessa linguagem.
15
Anexos
16
17
Conclusão
Nos gostamos de fazer porque foi fácil pesquisar os
subtemas porque já tínhamos dado esta matéria e por
isso fomos buscar tudo ao caderno da disciplina de
programação.

Mais conteúdo relacionado

Mais procurados

Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadores
LCCIMETRO
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de Programação
Sidney Roberto
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
Sandro Lopes
 
Programação de Microprocessadores
Programação de MicroprocessadoresProgramação de Microprocessadores
Programação de Microprocessadores
Diogo Silva
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
Marcos Gregorio
 
Linguagen..
Linguagen..Linguagen..
Linguagen..
essa
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
essa
 
How to linux Portuguese
How to linux PortugueseHow to linux Portuguese
How to linux Portuguese
Paulo Lopes Nunes
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programação
AlbertoVach
 
Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - Classificações
Adriano Teixeira de Souza
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
BeDMK
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
essa
 
Aprenda a programar python
Aprenda a programar pythonAprenda a programar python
Aprenda a programar python
Lourenço Junior
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
Weldir Fernando Dias
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
Ray Fran Pires
 
Introdução à Programação de Computadores com Python
Introdução à Programação de Computadores com PythonIntrodução à Programação de Computadores com Python
Introdução à Programação de Computadores com Python
Sidney Roberto
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Adriano Teixeira de Souza
 

Mais procurados (17)

Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadores
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de Programação
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
 
Programação de Microprocessadores
Programação de MicroprocessadoresProgramação de Microprocessadores
Programação de Microprocessadores
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
Linguagen..
Linguagen..Linguagen..
Linguagen..
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
How to linux Portuguese
How to linux PortugueseHow to linux Portuguese
How to linux Portuguese
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programação
 
Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - Classificações
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Aprenda a programar python
Aprenda a programar pythonAprenda a programar python
Aprenda a programar python
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
Introdução à Programação de Computadores com Python
Introdução à Programação de Computadores com PythonIntrodução à Programação de Computadores com Python
Introdução à Programação de Computadores com Python
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
 

Destaque

CENSURADO
CENSURADOCENSURADO
CENSURADO
Sara Lima
 
Riforma 2009 dei Contributi Studenteschi - Alma Mater Studiorum
Riforma 2009 dei Contributi Studenteschi - Alma Mater StudiorumRiforma 2009 dei Contributi Studenteschi - Alma Mater Studiorum
Riforma 2009 dei Contributi Studenteschi - Alma Mater StudiorumAss. Terzo Millennio
 
Agravo em recurso especial 531.428. Processo 2011.083371-9
Agravo em recurso especial 531.428. Processo 2011.083371-9Agravo em recurso especial 531.428. Processo 2011.083371-9
Agravo em recurso especial 531.428. Processo 2011.083371-9
Ministério Público de Santa Catarina
 
แผนที่ เอกไพลิน ริเวอร์แควร์
แผนที่ เอกไพลิน ริเวอร์แควร์แผนที่ เอกไพลิน ริเวอร์แควร์
แผนที่ เอกไพลิน ริเวอร์แควร์
walkrally
 
Agravo em Recurso Especial - 404.992
Agravo em Recurso Especial - 404.992Agravo em Recurso Especial - 404.992
Agravo em Recurso Especial - 404.992
Ministério Público de Santa Catarina
 
Technology 2.0
Technology 2.0Technology 2.0
Technology 2.0
Joaquín Salvachúa
 
Destination Marketing - Promuovi la tua destinazione su PaesiOnLine
Destination Marketing - Promuovi la tua destinazione su PaesiOnLineDestination Marketing - Promuovi la tua destinazione su PaesiOnLine
Destination Marketing - Promuovi la tua destinazione su PaesiOnLine
paesionline
 
Apelação Cível - 2014.036951-2
Apelação Cível - 2014.036951-2Apelação Cível - 2014.036951-2
Apelação Cível - 2014.036951-2
Ministério Público de Santa Catarina
 
Number Systems00
Number Systems00Number Systems00
Number Systems00
S N M P Simamora
 
影音平台混搭應用與創用CC版權概念
影音平台混搭應用與創用CC版權概念影音平台混搭應用與創用CC版權概念
影音平台混搭應用與創用CC版權概念relax.chi
 
Johana Luz Quinteros
Johana Luz QuinterosJohana Luz Quinteros
Johana Luz Quinteros
gueste3c09f
 
实验四 用Mathematica软件作导数应用
实验四  用Mathematica软件作导数应用实验四  用Mathematica软件作导数应用
实验四 用Mathematica软件作导数应用guestfe33f0e
 
Atividades impressas mat
Atividades impressas matAtividades impressas mat
Atividades impressas matrosemereporto
 
Gfk Rel Travel 060809 Ukr
Gfk Rel Travel 060809 UkrGfk Rel Travel 060809 Ukr
Gfk Rel Travel 060809 Ukrguest1c2dfc2
 
36529302 guia-dop-professor
36529302 guia-dop-professor36529302 guia-dop-professor
36529302 guia-dop-professor
rosemereporto
 
AgRg no Resp - 1485110
AgRg no Resp - 1485110AgRg no Resp - 1485110
Powerpointpresentatie Steenberghen
Powerpointpresentatie SteenberghenPowerpointpresentatie Steenberghen
Powerpointpresentatie Steenberghen
Pierre Steenberghen
 
وحدة التدريب1رئيسه
وحدة التدريب1رئيسهوحدة التدريب1رئيسه
وحدة التدريب1رئيسهzezo5
 
Bitdepth Visual Tutorial
Bitdepth Visual TutorialBitdepth Visual Tutorial
Bitdepth Visual Tutorial
guest33dc5d
 
Fungshui 八宅圖
Fungshui 八宅圖Fungshui 八宅圖
Fungshui 八宅圖Long Yi
 

Destaque (20)

CENSURADO
CENSURADOCENSURADO
CENSURADO
 
Riforma 2009 dei Contributi Studenteschi - Alma Mater Studiorum
Riforma 2009 dei Contributi Studenteschi - Alma Mater StudiorumRiforma 2009 dei Contributi Studenteschi - Alma Mater Studiorum
Riforma 2009 dei Contributi Studenteschi - Alma Mater Studiorum
 
Agravo em recurso especial 531.428. Processo 2011.083371-9
Agravo em recurso especial 531.428. Processo 2011.083371-9Agravo em recurso especial 531.428. Processo 2011.083371-9
Agravo em recurso especial 531.428. Processo 2011.083371-9
 
แผนที่ เอกไพลิน ริเวอร์แควร์
แผนที่ เอกไพลิน ริเวอร์แควร์แผนที่ เอกไพลิน ริเวอร์แควร์
แผนที่ เอกไพลิน ริเวอร์แควร์
 
Agravo em Recurso Especial - 404.992
Agravo em Recurso Especial - 404.992Agravo em Recurso Especial - 404.992
Agravo em Recurso Especial - 404.992
 
Technology 2.0
Technology 2.0Technology 2.0
Technology 2.0
 
Destination Marketing - Promuovi la tua destinazione su PaesiOnLine
Destination Marketing - Promuovi la tua destinazione su PaesiOnLineDestination Marketing - Promuovi la tua destinazione su PaesiOnLine
Destination Marketing - Promuovi la tua destinazione su PaesiOnLine
 
Apelação Cível - 2014.036951-2
Apelação Cível - 2014.036951-2Apelação Cível - 2014.036951-2
Apelação Cível - 2014.036951-2
 
Number Systems00
Number Systems00Number Systems00
Number Systems00
 
影音平台混搭應用與創用CC版權概念
影音平台混搭應用與創用CC版權概念影音平台混搭應用與創用CC版權概念
影音平台混搭應用與創用CC版權概念
 
Johana Luz Quinteros
Johana Luz QuinterosJohana Luz Quinteros
Johana Luz Quinteros
 
实验四 用Mathematica软件作导数应用
实验四  用Mathematica软件作导数应用实验四  用Mathematica软件作导数应用
实验四 用Mathematica软件作导数应用
 
Atividades impressas mat
Atividades impressas matAtividades impressas mat
Atividades impressas mat
 
Gfk Rel Travel 060809 Ukr
Gfk Rel Travel 060809 UkrGfk Rel Travel 060809 Ukr
Gfk Rel Travel 060809 Ukr
 
36529302 guia-dop-professor
36529302 guia-dop-professor36529302 guia-dop-professor
36529302 guia-dop-professor
 
AgRg no Resp - 1485110
AgRg no Resp - 1485110AgRg no Resp - 1485110
AgRg no Resp - 1485110
 
Powerpointpresentatie Steenberghen
Powerpointpresentatie SteenberghenPowerpointpresentatie Steenberghen
Powerpointpresentatie Steenberghen
 
وحدة التدريب1رئيسه
وحدة التدريب1رئيسهوحدة التدريب1رئيسه
وحدة التدريب1رئيسه
 
Bitdepth Visual Tutorial
Bitdepth Visual TutorialBitdepth Visual Tutorial
Bitdepth Visual Tutorial
 
Fungshui 八宅圖
Fungshui 八宅圖Fungshui 八宅圖
Fungshui 八宅圖
 

Semelhante a Algoritmia para o site do 10gi marcelo e ricardo

Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
essa
 
Paradigmas da programacao apostila
Paradigmas da programacao apostilaParadigmas da programacao apostila
Paradigmas da programacao apostila
Nathiele Lacerda
 
Aula 03 isc -softwares-hardwares-arquiteturas
Aula 03   isc -softwares-hardwares-arquiteturasAula 03   isc -softwares-hardwares-arquiteturas
Aula 03 isc -softwares-hardwares-arquiteturas
Fábio Andrade
 
Introdução a Lógica e Conceitos de Programação.ppt
Introdução a Lógica e Conceitos de Programação.pptIntrodução a Lógica e Conceitos de Programação.ppt
Introdução a Lógica e Conceitos de Programação.ppt
BrennoPimenta
 
Cap02
Cap02Cap02
Cap02
mvbahamut
 
Cap02
Cap02Cap02
Cap02
mvbahamut
 
Cap02
Cap02Cap02
Cap02
mvbahamut
 
Aula
AulaAula
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
FelipeDi
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
Rodrigo Gonçalves
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Noções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisNoções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores Digitais
Henry Raúl González Brito
 
Hardware e software
Hardware e softwareHardware e software
Hardware e software
leonardovieiradias
 
Hardware e software
Hardware e softwareHardware e software
Hardware e software
jotacabral
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de Computadores
Luis Ferreira
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
Ubirajara Cavaco
 
Introdução á programação - 1ª parte
Introdução á programação - 1ª parteIntrodução á programação - 1ª parte
Introdução á programação - 1ª parte
Luis Fernandes
 
Aula 01 algoritmo
Aula 01 algoritmoAula 01 algoritmo
Aula 01 algoritmo
Luiz Paulo Pereira Silva
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
andreluizlugon
 
Engenharia rever sa mentebinaria
Engenharia rever sa   mentebinariaEngenharia rever sa   mentebinaria
Engenharia rever sa mentebinaria
Patrese Renan
 

Semelhante a Algoritmia para o site do 10gi marcelo e ricardo (20)

Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Paradigmas da programacao apostila
Paradigmas da programacao apostilaParadigmas da programacao apostila
Paradigmas da programacao apostila
 
Aula 03 isc -softwares-hardwares-arquiteturas
Aula 03   isc -softwares-hardwares-arquiteturasAula 03   isc -softwares-hardwares-arquiteturas
Aula 03 isc -softwares-hardwares-arquiteturas
 
Introdução a Lógica e Conceitos de Programação.ppt
Introdução a Lógica e Conceitos de Programação.pptIntrodução a Lógica e Conceitos de Programação.ppt
Introdução a Lógica e Conceitos de Programação.ppt
 
Cap02
Cap02Cap02
Cap02
 
Cap02
Cap02Cap02
Cap02
 
Cap02
Cap02Cap02
Cap02
 
Aula
AulaAula
Aula
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Noções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisNoções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores Digitais
 
Hardware e software
Hardware e softwareHardware e software
Hardware e software
 
Hardware e software
Hardware e softwareHardware e software
Hardware e software
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de Computadores
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Introdução á programação - 1ª parte
Introdução á programação - 1ª parteIntrodução á programação - 1ª parte
Introdução á programação - 1ª parte
 
Aula 01 algoritmo
Aula 01 algoritmoAula 01 algoritmo
Aula 01 algoritmo
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Engenharia rever sa mentebinaria
Engenharia rever sa   mentebinariaEngenharia rever sa   mentebinaria
Engenharia rever sa mentebinaria
 

Algoritmia para o site do 10gi marcelo e ricardo

  • 1. 1 Escola Secundária Ferreira Dias Gestão e Programação de Sistemas Informáticos TIC Algoritmia Marcelo Rachado nº13, Ricardo Gomes Nº19 Professor: Vanda Pereira Novembro de 2013
  • 2. 2 Índice O que é um Algoritmo?-----------------------------------Pág.3 Tipos de Algoritmos---------------------------------------Pág. 4 Fluxograma--------------------------------------------------Pág.5 Pseudocodigo-----------------------------------------------Pág. 6 Estruturas de repetição-----------------------------------Pág. 7 Estrutura de decisão ou seleção------------------------Pág. 8 Símbolos da algoritmia-----------------------------------Pág. 9 O que é a programação?---------------------------------Pág. 10 Um pouco de história-------------------------------------Pág. 11 Algumas das terminologias------------------------------Pág. 12 A Estrutura de um programa---------------------------Pág. 13 Os pontos em comum de todos os programas-----Pág. 14 Anexos-------------------------------------------------------Pág. 15 Conclusão---------------------------------------------------Pág. 16
  • 3. 3 Introdução Este trabalho foi feito não só pela internet mas também pelo caderno de Programação de Sistemas Informáticas. Esperemos que a professora goste do nosso trabalho.
  • 4. 4 O que é um 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. Tal diferença pode ser reflexo da complexidade computacional aplicada, que depende de estruturas de dados adequadas ao algoritmo. Por exemplo, um algoritmo para se vestir pode especificar que você vista primeiro as meias e os sapatos antes de vestir a calça enquanto outro algoritmo especifica que você deve primeiro vestir a calça e depois as meias e os sapatos. Fica claro que o primeiro algoritmo é mais difícil de executar que o segundo apesar de ambos levarem ao mesmo resultado.
  • 5. 5 Tipos de Algoritmos Na descrição de algoritmos são utilizados diferentes formalismos conforme o objetivo ou audiência. Entre os mais comuns encontram-se o pseudo-código e fluxogramas.  Pseudo-código- consiste na descrição do algoritmo numa linguagem parecidacom a linguagem natural (português, inglês ou outra) de forma estruturada. O objectivo deste formalismo é centrar a atenção do programador na lógica ou fluxo do algoritmo, abstraindo- se das questões relacionadas com a sintaxe específicade uma determinada linguagem de programação;  Fluxograma - consiste na descrição de um algoritmo de forma gráfica. Este formalismoinclui um conjunto de símbolos gráficos que representação os diferentestipos de instruções anteriormente descritas: sequência, decisão e repetição.
  • 6. 6 Fluxograma Vantagens  Representação gráfica (é mais fácil de visualizar)  Símbolos normalizados  Cada símbolouma funcionalidade (rápida detenção de erros) Desvantagens  As alterações são difíceis  Não e possível representar os dados  Quanto maior for, mais confuso e complexo terá de o desenhar
  • 7. 7 Pseudocodigo Vantagens  Como é baseado na linguagem corrente e mais fácil de elaborar  Pode atingir vários níveis de complexidade, conforme o detalhe como se escreve  Permite acompanhar o tratamento de dados facilitando o teste do programa  Serve de base a própria decomentaçao Desvantagens  Não possui regras padrão, depende da escrita de cada programador  Não permite uma tão rápida visualização de erros como o fluxograma, porque é escrito  Pouco indicada para a analisar rotinas especificas
  • 8. 8 Estruturas de repetição Com base numa condição Com base num contador Repetir…Enquanto…Ate… Até que…Fazer…Com… Para…Fazer… Estrutura de decisão ou seleção Com base numa condiçãoCom base num seletor Se…Swictch-Case Então… Senão…
  • 10. 10 O que é a programação? A programação é a arte de fazer com que o computador faça exatamente o que desejamos que ele faça. Ao nível mais simples consistirá em enviar uma sequência de comandos para um computador por forma a atingir um determinado objetivo. Ou que o computador execute uma determinada função. No mundo da Microsoft, os utilizadores do MS DOS costumavam ficheiros de texto que iriam conter uma lista de comandos, esses ficheiros tinham uma extensão BAT. Estes ficheiros simplesmente executam uma sequência de comandos BATCH. Ainda é possível criar estes ficheiros em ambientes Windows mas a realidade é que hoje em dia quase ninguém o faz. Sendo portanto muito raramente visto. Por exemplo, poderás estar a produzir um documento (tal como este Tutorial o é) que por sua vez comprime vários ficheiros separados. O teu processador de texto poderia produzir uma cópia de backup de cada ficheiro a medida que os ias guardando as novas versões do ficheiro. No final do dia de trabalho poderias querer por a versão mais recente do documento (e de todos os ficheiros que dele fazem parte) num diretório de backupdiretório/pasta. Finalmente e para deixar tudo limpinho e como deve ser, deveria se apagar as versões antigas contidas nesse mesmo diretório (para não criar confusão). Esta tarefa poderia ser toda por um simples ficheiro. BAT que iríamos criar para esse solo propósito.
  • 11. 11 Um pouco de história Da mesma forma que falas com um amigo numa determinada língua, é a mesma forma como falas com um computador. Usando a língua do computador. A única linguagem que um computador entende é a linguagem binária, que por sua vez tem vários dialetos - é por isso que programas do iMac não correm no teu PC e vice-versa. O código binário é, infelizmente, muito difícil para os humanos lerem e escreverem, por isso somos de certa obrigados a usar uma linguagem intermédia que mais tarde será traduzida para linguagem binária É como ter o Clinton e o Yeltsin numa reunião de comité - O Clinton fala, o intérprete repete o que ele disse em russo. Depois o Yeltsin responde e o intérprete mais, mais uma vez repete do dito, mas desta vez em Inglês. De uma forma muito inovadora, decidiu-se chamar o tradutor da linguagem intermediária para linguagem binária de intérprete. E da mesma forma que normalmente se necessita de um interprete para traduzir de Russo para Inglês e de outro de outro para traduzir de Chinês para Russo (por exemplo), também precisamos de interpretes diferentes para traduzir o Python para linguagem binária e outro para traduzir de Basic para linguagem binária. Na verdade os primeiros programadores tinham que introduzir linguagem binária diretamente, e isso é muitodifícil. Então o passo seguinte foi criar um tradutor que simplesmente traduziria uma língua comum (digamos o inglês) para a linguagem binária. Isso fez com que as coisas ficassem muito mais simples, então em vez de estarmos a massacrar a memória tentando lembrar que o código 001273 05 significa adicionar 5 a 4, os programadores por e simplesmente escreveriam add 5 4. Este simples avanço facilitou a vida a toda a gente, estes códigos de sistema foram na realidade as primeiras linguagens de programação, um para cada tipo de computador. Esta linguagem passou a ser conhecida como programação por assembler, hoje em dia ainda é utilizada em algumas tarefas muito específicas.
  • 12. 12 Algumas das terminologias Já foi dito que a programação é a arte de fazer com que um computador faça aquilo que pretendemos que ele faça, mas o que é um programa? Na realidade existem dois conceitos de programas. O primeiro é aquele que é visto do ponto de vista do utilizador - onde um programa é um ficheiro executável que é instalado e pode-se correr vezes sem conta para se realizar uma determinada tarefa. Por exemplo os utilizadores falam em correr o programa de processamento de texto. Por outro lado existe a visão do programador onde o programa é um ficheiro de texto cheio de instruções para o computador, escrito numa linguagem de programação, e que poderá ser traduzido num ficheiro executável. Portanto quando falar sobre um programa presta sempre atenção a qual dos dois conceitos te referes. Basicamente um programador "escreve" um programa numa linguagem de alto nível, que posteriormente será interpretado para byte para que o computador possa entender o que foi escrito. Em linguagem técnica o programador escreve um source code e o intérprete cria um object code. Por vezes o object code pode ter outros nomes como: P-code, código binário, ou linguagem de máquina.
  • 13. 13 A Estrutura de um programa A exata estrutura de um programaesta não só dependente da linguagem de programação utilizada mas também como do ambiente onde esse programa será executado. Contudo existem alguns princípios comuns a todos: O Carregador - qualquer programa precisa de ser carregado para a memória pelo sistema operativo. O carregador normalmente e que tem essa tarefa, e normalmente o carregador é criado pelo próprio interprete. Definindo os Dados - a maioria dos programas tem que eventualmente em algum ponto trabalhar sobre data, portanto algures na source code temos que definir exatamente em que tipo de data está a trabalhar. Statements - isto é, poderá considerado a cerne dos nossos programas. Os statements na realidade manipulam a data que nos definimos, fazem os cálculos necessárias, e imprimem ou guardam o ouput, etc..
  • 14. 14 Os pontos em comum de todos os programas Era uma vez um senhor chamado Edsgar Dijkstra e ele apareceu com um conceito chamado structured programming. Que dizia que todos os programas podiam ser estruturados das seguintes quatro maneiras: Sequências de instruções Loops Branches Módulos Juntamente com esta estrutura, os programas também precisam de mais algumas coisas para que se possam tornar úteis: Data Operações (somar, subtrair, comparar, etc..) Capacidade de Input/Output (para poder dispor os resultados) Uma vez que compreendas estes conceitos e como cada linguagem em particular as implementa, então estarás apto para escrever um programa nessa linguagem.
  • 16. 16
  • 17. 17 Conclusão Nos gostamos de fazer porque foi fácil pesquisar os subtemas porque já tínhamos dado esta matéria e por isso fomos buscar tudo ao caderno da disciplina de programação.