Buscar

Aula 1 algaritimo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Prof. Me. Marcelo Santos
Profa. Me. Vanessa Lessa
Aula 1
Algoritmos
CST em Tecnologia da Informação
2
 Apresentação da disciplina
 Plano de Ensino 
 Conteúdo Programático
 Avaliação
 Softwares utilizados
 O que impulsiona o trabalho de um projetista de computadores
 Código fonte e código objeto
 Algoritmos
 Fluxograma
O que vamos ver hoje?
3
Ementa
 Algoritmos. Estrutura de Dados. Introdução à linguagem de programação C para 
desenvolvimento de softwares básicos e de controle. Fundamentos de programação 
estruturada. Tipos de dados não estruturados.
Objetivos Gerais
 Apresentar ao aluno as noções mais básicas de programação de computadores através do 
ensino de algoritmos com o uso de uma linguagem e ambiente de programação.
Bibliografia
 MANZANO, José A. N. G. Algoritmos: técnicas de programação. – 2. ed. – SP: Érica, 2015.
 SILVA, Eduardo L. Programação de Computadores. - SP, Pearson Education do Brasil, 2015.
 SOFFNER, R. Algoritmos e Programação em Linguagem C. Saraiva, 2013. 
Plano de Ensino
4
1. Introdução a Programação;
2. Técnicas básicas de programação; 
3. Estrutura de dados; 
4. Linguagem C;
5. Funções;
6. Utilização de arquivos, diretórios e discos;
7. Vetores e Matrizes; 
8. Funções de entrada e saída.
Conteúdo Programático
5
 Aulas Teóricas:
 N559 – Algoritmos – Prova (0 - 10) – Profa. Vanessa Lessa
 Aulas Práticas:
 E107 – Algoritmos – Prova (0-7) – Trabalho(0-3)
Avaliação
6
 Fluxograma
 Usaremos o Flowgorithm http://www.flowgorithm.org/
 Algoritmos
 Dev C++ (disponível de forma gratuita para download no seguinte link: 
https://sourceforge.net/projects/orwelldevcpp/). 
 CodeBlocks (https://www.codeblocks.org/downloads/)
 Sugestões online
 Compilador online: https://www.onlinegdb.com/online_c_compiler
 Plataforma de desenvolvimento online: https://repl.it
Softwares utilizados
7
 Muitas pessoas pensam que a programação de computadores é uma arte misteriosa. 
Quando lhe perguntam como chegar a um local específico, você responde com um 
programa, mesmo que você provavelmente o chame de ‘instruções’. 
 Suas instruções podem não funcionar porque você se esqueceu de uma curva ou não se deu 
conta de um beco que a pessoa iria encontrar no meio do caminho. 
 Programadores de computador chamam esse tipo de erro de bug. 
 A diferença entre o Código Fonte e o Código Objeto é que o Código Fonte é uma coleção de 
instruções de computador escritas usando um manual legível por humanos a partir de uma 
linguagem de programação, enquanto o Código Objeto (Object Code) representa uma 
sequência de instruções em uma linguagem de máquina e é a saída após o compilador 
converter o código fonte.
Código fonte e código objeto
8
 Difference between source code and object code (2018) afirma que antes de desenvolver o 
software deve haver uma compreensão dos requisitos (funcionais e não funcionais). 
 Os analistas obtêm as funcionalidades necessárias do usuário e as documentam. Esse 
documento contém justamente a especificação dos requisitos do sistema (SRS – System
Requirement Specification). 
 Ele fornece a documentação descritiva das funcionalidades necessárias. Com base nesse 
documento, o sistema poderá ser projetado. 
 O projeto do sistema pode ser feito usando fluxogramas, diagramas de fluxo de dados (DFD 
– Data Flow Diagrams). As saídas da fase de design pode ser a produção do design de 
banco de dados, design de processo etc. 
O que é o código fonte?
9
 Após a fase de design ser concluída, esses projetos podem ser implementados usando uma 
linguagem de programação relevante por um programador.
 Existem muitas linguagens de programação. Algumas delas são C, C++, C#, Python, Java 
etc. O programador pode selecionar a linguagem de programação de acordo com o projeto 
do software e converter os diagramas e documentação em programas de computador. As 
instruções foram escritas para alcançar as funcionalidades do software necessário usando a 
linguagem de programação. 
 As instruções têm uma sintaxe semelhante ao idioma inglês e legível por um ser humano. 
Esta coleção de instruções escritas usando uma linguagem de programação legível por 
humanos é chamada de código fonte.
O que é o código fonte?
10
 Difference between source code and object code (2018) apresenta que o código fonte é 
compreensível por humanos porque possui uma sintaxe semelhante à do inglês. Não é 
compreensível por um computador ou uma máquina. Os computadores ou máquinas 
compreendem uma linguagem binária que consiste em zeros e um. Portanto, é necessário 
converter o código fonte em um formato compreensível pela máquina. O compilador converte 
o código fonte em uma linguagem binária ou linguagem de máquina.
 Esse código convertido é conhecido como código objeto que é compreensível pelo 
computador. (As instruções dadas pelo ser humano são compreensíveis pelo computador a 
partir dessa conversão).
O que é código objeto?
Fonte: https://pixabay.com/photos/code-code-editor-coding-computer-1839406/
11
 Um algoritmo é uma sequência de etapas para resolver um problema específico ou pode ser 
definido como sendo um conjunto ordenado de etapas inequívocas que produz um resultado 
e termina em um tempo finito. 
 Muitos profissionais da área de programação de computadores (principalmente os mais 
experientes, cautelosos e cuidadosos) preferem elaborar seus programas com base em um 
projeto que aborde todos os aspectos técnicos do desenvolvimento, com atenção especial 
sempre à parte do projeto lógico. 
 O projeto de desenvolvimento de sistemas (conjunto de programas de computador com o 
mesmo propósito e interligados) segue diversas etapas de um processo normalmente 
conhecido como análise de sistemas. 
Algoritmos
12
A partir desse princípio, o algoritmo possui as seguintes características:
 Input (Entrada): um algoritmo pode ou não exigir a entrada de dados.
 Output (Saída): espera-se que cada algoritmo produza pelo menos um resultado (processo).
 Definiteness (Definitividade): cada instrução deve ser clara e inequívoca.
 Finiteness (Finitude): caso as instruções de um algoritmo forem executadas, o algoritmo 
deve terminar após um número finito de etapas.
Algoritmos
13
 Etapa 1 – Defina a entrada de seus algoritmos: muitos algoritmos recebem dados para 
serem processados, por exemplo, para calcular a área de entrada do retângulo, pode ser a 
altura e a largura do retângulo.
 Etapa 2 – Definir as variáveis: As variáveis do algoritmo permitem que você as utilize por 
mais de um lugar. Podemos definir duas variáveis para altura e largura do retângulo como 
HEIGHT e WIDTH (ou H & W). 
 Etapa 3 – Descreva as operações do algoritmo: Use a variável de entrada para fins de 
cálculo, por exemplo. Para encontrar a área do retângulo, multiplique as variáveis ALTURA e 
LARGURA e armazene o valor em uma nova variável que poderíamos nomear como sendo 
AREA. As operações de um algoritmo podem assumir a forma de várias etapas e 
dependendo do valor das variáveis de entrada.
 Etapa 4 – Saída dos resultados das operações do seu algoritmo: No caso da área do 
retângulo a saída será o valor armazenado na variável AREA. Caso as variáveis de entrada 
descreverem um retângulo com uma altura de 5 e uma largura de 2, o algoritmo produziria o 
valor de 10.
Algoritmos - Como escrever algoritmos
14
 O algoritmo é uma representação passo a passo de uma solução para um determinado 
problema, o que facilita para entender todo o contexto, utiliza um procedimento definido e 
não depende de nenhuma linguagem de programação, por esse motivo é fácil compreender, 
mesmo sem um conhecimento prévio de programação.
Algoritmos
Fonte: https://www.shutterstock.com/image-photo/document-management-data-system-
business-internet-1416401996
15
 De acordo com Walia (2020), o primeiro design do fluxograma foi desenvolvido em 1945, por 
John Von Neumann. Diferentemente de um algoritmo, o Fluxograma utiliza símbolospara 
projetar uma solução para um problema. Ao olhar para um fluxograma, você pode entender 
as operações e a sequência de operações que serão executadas em um sistema. O 
fluxograma é frequentemente considerado como sendo a planta de um projeto usado para 
resolver um problema específico.
 Os símbolos de identificação gráfica representam sempre uma operação ou conjunto de 
operações similares, podendo ser identificados por um rótulo relacionado à própria ação do 
símbolo em uso, somente quando necessário.
 Os símbolos devem ser conectados uns aos outros por linhas de setas que mostrem 
explicitamente a direção do fluxo a ser executado pelo programa.
Fluxograma
16
 A estrutura visual do diagrama deve, a princípio, estar orientada no sentido de cima para 
baixo, da direita para a esquerda e ser desenhada no centro da folha de papel. No entanto, 
dependendo da situação, esse critério pode ser alterado, o que leva à necessidade de 
manter o uso das linhas de seta indicando a direção do fluxo.
 A definição de inicialização e finalização de um diagrama ocorre com o uso do símbolo 
“terminal” devidamente identificado com um dos rótulos: início, fim, retorno ou a definição de 
um nome particular, quando for necessário, desde que seguidas as regras de utilização de 
sub-rotinas (a serem apresentadas em momento oportuno) (MANZANO, 2019. p. 38).
 O fluxograma é muito importante para desenvolver a compreensão de como um processo 
será realizado, além de melhorar a comunicação com os membros da equipe (todas as 
pessoas envolvidas no mesmo processo) e documentar os processos que serão 
implementados.
Fluxograma
17
 De acordo com SOFFNER (2013), os algoritmos podem ser representados de forma gráfica, 
por meio de símbolos padronizados (fluxogramas, também chamados de diagramas de 
blocos). Segue abaixo uma imagem que representam a forma como os algoritmos são 
representados.
Fluxograma
Fonte: Adaptado de: Simbologia para diagramas de blocos. (SOFFNER, 2013. p. 22)
Função, procedimento ou sub-rotina
Repetição com variável de controle
Direção do fluxo de dados
Conexão
Início ou fim do algoritmo
Entrada ou saída de dados
Processamento
Decisão
Saída na tela
Saída impressa
18
 CALCULAR ÁREA DE UM RETÂNGULO
1. Identificar as entradas
2. Definir as variáveis
3. Descrever a operação
4. Identificar as saídas
Fluxograma
ALTURA
LARGURA
AREA = ALTURA X LARGURA AREA
ENTRADA PROCESSAMENTO SAÍDA
19
 CALCULAR ÁREA DE UM RETÂNGULO
1. Identificar as entradas
2. Definir as variáveis
3. Descrever a operação
4. Identificar as saídas
Fluxograma
20
ART, Susan; ELLISON, Robert; FEILER, Peter; EDITED, A.; FRITZSON, Peter. (1992). 
Overview of Software Development Environments. Disponível em: 
https://www.ics.uci.edu/~andre/ics228s2006/dartellisonfeilerhabermann.pdf. Acesso em: 25 abr. 
2020.
BEALE, E. M. L. 1970. Matrix Generators and Output Analyzers. In H.W. Kuhn (ed.), 
Proceedings of the Princeton Symposium on Mathematical Programming. Princeton University 
Press, Princeton, NJ, pp. 25-36.
BROOKSHEAR, J.G. Computer Science: An Overview. Boston, Mass.: Pearson, 2009.
CHARNTAWEEKHUN, Kanis & WANGSIRIPITAK, Somkiat. (2006). Visual Programming using 
Flowchart. Disponível em: 10.1109/ISCIT.2006.339940. Acesso em: 25 abr. 2020.
CREEGAN, J.B. 1985. DATAFORM, a Model Management System. Ketron, Inc., Arlington, VA.
DIFFERENCE BETWEEN SOURCE CODE AND OBJECT CODE. 24/01/2018. Disponível em: 
/https://www.differencebetween.com/wp-content/uploads/2018/01/Difference-Between-Source-
Code-and-Object-Code.pdf. Acesso em: 25 abr. 2020.
MANZANO, José Augusto N. G. Algoritmos: lógica para desenvolvimento de programação de 
computadores. 29. ed. São Paulo: Érica, 2019.
Referências 
21
SLONNEGER, Kenneth; KURTZ, Barry L. Formal syntax and semantics of programming 
languages: a laboratory. 1995. Disponível em: https://www.mobt3ath.com/uplode/book/book-
26246.pdf. Acesso em: 25 abr. 2020.
SOFFNER, R. Algoritmos e Programação em Linguagem C. São Paulo: Saraiva, 2013.
SOICHER, Leonard; VIVALDI, Franco. Algorithmic Mathematics. University of London, 2004. 
Disponível em: http://www.maths.qmul.ac.uk/~lsoicher/ambook.pdf. Acesso em: 28 abr. 2020. 
STALLINGS, W. Computer Organization and Architecture, Designing for Performance. 
Boston, Mass.: Pearson. 2010.
UNIVERSITY OF CRETE. 2020. Introduction to Data Types and Structures. Disponível 
em: 
https://www.csd.uoc.gr/~hy252/html/References/Introduction%20to%20Data%20Types
%20and%20Structures.pdf. Acesso em: 28 abr. 2020. 
WALIA, Ravi K. 2020. Algorithm & Flowchart manual for students. University of
Horticulture & Forestry – Índia. Disponível em: 
http://www.yspuniversity.ac.in/cic/algorithm-manual.pdf. Acesso em: 26 abr. 2020.
Referências 
22
WIRTH, N. Algorithms and Data Structures. 1985. Disponível em: 
https://inf.ethz.ch/personal/wirth/AD.pdf. Acesso em: 28 abr. 2020.
YANG, Kuo-pao. Chapter 6 – Data Types. 2017. Disponível em: 
https://www2.southeastern.edu/Academics/Faculty/kyang/2017/Fall/CMPS401/ClassNotes/CMPS40
1ClassNotesChap06.pdf. Acesso em: 27 abr. 2020.
Referências 
23
BONS ESTUDOS!

Outros materiais