Prof. Mauro Jansen
Professor: Mauro Jansen
Microprocessadores II
Revisão de Linguagem de Programação
Prof. Mauro JansenLinguagem de ProgramaçãoRevisão de Introdução à programação 2
Conceitos Básicos
Prof. Mauro Jansen
Dados e informações
Dados: são os fatos em sua ordem primária. Matéria prima (bruta) Ex: preço de venda, nota, horas trabalhadas
Informação: parte utilizável dos dados, que pode ser armazenada, transmitida ou permitir a dedução de novas informações. Produto final (acabado, lapidado) Ex: orçamento, resultado acadêmico, folha de
pagamento
Linguagem de ProgramaçãoRevisão de Introdução à programação 3
INFORMAÇÃO
DADOCONHECIMENTO
Prof. Mauro Jansen
Processamento de dados
Qualquer trabalho de manipulação de dados que tenha como finalidade obter resultados previamente estabelecidos de modo a resolver determinado problema
Tem 3 partes principais: ENTRADA, PROCESSAMENTO e SAÍDA Envolve TRANSMISSÃO, ARMAZENAMENTO, RECUPERAÇÃO,
COMPARAÇÃO, COMBINAÇÃO de informações
Linguagem de ProgramaçãoRevisão de Introdução à programação 4
ENTRADA
PROCESSAMENTO
SAÍDA
Prof. Mauro Jansen
Dados de entrada e saída
Ao tentar resolver um problema, devemos identificar alguns dados que auxiliarão na sua resolução.
Dados de Entrada: dão suporte à solução do problema. Ponto de partida.
Dados de Saída: resultados esperados após solução.
Através de um algoritmo os dados de entrada podem ser processados e teremos a solução do problema, que gerará uma saída de dados
Linguagem de ProgramaçãoRevisão de Introdução à programação 5
Prof. Mauro Jansen
Instrução e lógica de programação
Instrução: Informação que indica ao computador uma ação elementar a executar
Lógica de programação diz respeito à dedução de uma sequência de instruções tal que, fornecidos os dados de entrada, alcançaremos como saída a solução do problema inicialmente concebido, por meio da execução das instruções
Linguagem de ProgramaçãoRevisão de Introdução à programação 6
Prof. Mauro JansenLinguagem de ProgramaçãoRevisão de Introdução à programação 7
Algoritmos
(Conceitos, características, importância e passos para criação)
Prof. Mauro Jansen
Algoritmo
Sequência ordenada de passos (instruções) necessários para a resolução de um problema ou processo.
Procedimento passo a passo para resolução de um problema
Exemplos de possíveis problemas do mundo real solucionáveis com algoritmos: Resolver uma operação matemática seguindo passos até
chegar ao resultado final Assar uma pipoca no forno microondas Tomar medicamentos seguindo orientações médicas Cozinhar seguindo receitas culinárias
Linguagem de ProgramaçãoRevisão de Introdução à programação 8
Prof. Mauro Jansen
Conceito formal
Linguagem de ProgramaçãoRevisão de Introdução à programação 9
“Um algoritmo é uma lista de instruções que, quando executadas, transformam dados de entrada até a saída. As instruções são um conjunto finito de etapas que podem ser executadas, numa ordem precisa, por um mecanismo determinista. Quando estas etapas são efetivamente executadas , a execução deve terminar após um tempo
finito.”(HOLLOWAY, 2006)
Prof. Mauro Jansen
Características de um algoritmo
Ter fim;Não dar margem a dupla interpretação;
Capacidade de receber dados do mundo exterior;
Poder gerar informações de saída para o mundo externo ao ambiente do algoritmo;
Ser efetivo;
Linguagem de ProgramaçãoRevisão de Introdução à programação 10
Prof. Mauro Jansen
Importância dos algoritmos
“A noção de algoritmo é básica para toda a programação de computadores”.
[KNUTH - Professor da Universidade de Stanford, autor da coleção “The art of computer programming”
“O conceito central da programação e da ciência da computação é o conceito de algoritmo”.[WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área
e responsável pela criação de linguagens de programação como ALGOL, PASCAL e MODULA-2]
Linguagem de ProgramaçãoRevisão de Introdução à programação 11
Prof. Mauro Jansen
Passos para escrever um algoritmo
Segundo ASCENCIO e CAMPOS (2002), os passos para a construção de algoritmos são os seguintes: Ler atentamente o enunciado, destacando os
pontos mais importantes; Definir os dados de entrada; Definir o processamento; Definir os dados de saída; Construir o algoritmo uma das técnicas descritas
a seguir; Testar o algoritmo realizando simulações.
Linguagem de ProgramaçãoRevisão de Introdução à programação 12
Prof. Mauro JansenLinguagem de ProgramaçãoRevisão de Introdução à programação 13
Linguagens de Programação
(Aonde queremos chegar com os algoritmos)
Prof. Mauro Jansen
Linguagem de máquina
O computador, nativamente, só entende uma linguagem: a linguagem (ou código) de máquina, que é uma linguagem que: Tem grau de dificuldade acentuado Requer do programador um conhecimento da
arquitetura interna do hardware Exemplo de programa em código de máquina:
Linguagem de ProgramaçãoRevisão de Introdução à programação 14
C000:C100 BF 00 74 68 51 66 56 57-1E 06 53 66 50 E8 BC 00C000:C110 8B D9 D1 E1 16 5E 8E DE-8E C6 83 C5 02 8B C5 83C000:C120 ED 16 8B F5 8B FD 2B F9-8B E8 B9 0C 00 FC F3 A5
C000 10111111C001 00000000C002 01110100C003 01101000...
Prof. Mauro Jansen
Linguagens de programação (LP’s)
As linguagens de programação existem para tornar a programação mais próxima da nossa linguagem natural Maior facilidade Maior produtividade
Linguagem de ProgramaçãoRevisão de Introdução à programação 15
Código de máquina X linguagem de alto nível:
Prof. Mauro Jansen
Linguagens de programação (exemplo de programa)
Exemplo de programa em uma linguagem de programação (Pascal):
Linguagem de ProgramaçãoRevisão de Introdução à programação 16
(* Programa CONTADOR – conta de 1 a 10*)Var c: integer;Begin for c:=1 to 10 do writeln(c); writeln(‘Fim!’);End.
Prof. Mauro Jansen
Linguagens de programação (LP’s)
São programas (softwares) usados para criar outros programas.
Transformam um conjunto de instruções de uma linguagem acessível em instruções da linguagem do computador (linguagem de máquina)
Exemplos:
Linguagem de ProgramaçãoRevisão de Introdução à programação 17
Pascal Delphi Visual Basic Java
C C++ C# PHP Javascript
Prof. Mauro Jansen
Características das LP’s
Rigidez sintática: Idioma limitado e construções bem definidas A ordem dos termos ou uma vírgula a mais ou a
menos faz diferença (a sintaxe deve ser seguida à risca)
Rigidez semântica: não pode haver ambiguidades. O computador não tem idéia do que executa e
nem inteligência para analisar a ordem Você deve ser bem claro em relação ao que quer
que o computador execute
Linguagem de ProgramaçãoRevisão de Introdução à programação 18
Prof. Mauro Jansen
Tipos de linguagens de programação
Quanto ao nível de abstração (facilidade de aprendizado) Alto nível Médio nível Baixo nível
Quanto à forma de execução Compiladas Interpretadas
Linguagem de ProgramaçãoRevisão de Introdução à programação 19
Prof. Mauro Jansen
Nível de abstração das LPs
Alto nível: separa os detalhes da máquina. É mais próxima da linguagem humana
Médio nível: separa os detalhes da máquina, mas permite o acesso aos mesmos
Baixo nível: diretamente relacionadas com a arquitetura do hardware
Linguagem de ProgramaçãoRevisão de Introdução à programação 20
Prof. Mauro Jansen
Nível de abstração das LPs
Linguagem de ProgramaçãoRevisão de Introdução à programação 21
MÁQUINA
Homem / linguagem humana
Linguagens de alto nível:ASP, C/C++, C#, Pascal/Object Pascal, Java,PHP, Python, Tcl, Basic/Visual Basic, Delphi
Linguagens de médio nível:C, C++
Linguagens de baixo nível: Assembly e Linguagem de máquina
Prof. Mauro Jansen
Linguagem compilada – visão geral
Linguagem compilada Converte o programa na linguagem de alto nível (programa fonte) para a linguagem de máquina (programa executável)
Funcionamento:
Linguagem de ProgramaçãoRevisão de Introdução à programação 22
Programafonte Compilador Linkeditor
Programa executável
Códigoobjeto
bibliotecas
Prof. Mauro Jansen
Linguagem compilada - elementos
Programa fonte: (ou código fonte) instruções e símbolos de uma linguagem de programação escritos de forma lógica e ordenada, com o objetivo de comandar um computador na execução de uma função Normalmente são arquivos tipo texto com
extensão definida pela LP: .C , .PAS , .JAVA , .PHP , etc
Compilador: (ou tradutor) programa que traduz um programa fonte em uma linguagem para um código objeto ou linguagem de mais baixo nível
Código objeto: (ou código intermediário). Código resultante da compilação. Ainda não é executável diretamente pelo computador. Linguagem de Programação
Revisão de Introdução à programação 23
Prof. Mauro Jansen
Linguagem compilada - elementos
Linkeditor: (ou ligador) programa que liga os objetos gerados pelo compilador, criando o arquivo executável
Bibliotecas: conjuntos de sub-programas, ou objetos previamente existentes que serão (re)utilizados na criação do programa executável
Programa executável: arquivo final, que pode ser executado pelo computador através do sistema operacional Normalmente são arquivos com a extensão .EXE
ou .COM
Linguagem de ProgramaçãoRevisão de Introdução à programação 24
Prof. Mauro Jansen
Linguagem compilada - exemplos
DelphiPascal/Object PascalCVisual BasicAssembler, etc.
Linguagem de ProgramaçãoRevisão de Introdução à programação 25
Prof. Mauro Jansen
Linguagem interpretada – visão geral
Linguagem interpretada Executa os comandos sem converter para a linguagem de máquina (não gera programa executável)
Funcionamento: Ou:
Linguagem de ProgramaçãoRevisão de Introdução à programação 26
Programafonte
Interpretador(executa)
Interpretadorou
Máquina virtual(executa)
Códigoobjeto
Programafonte Compilador
Prof. Mauro Jansen
Linguagem interpretada – exemplos:
Java HTML ASPPHPJavascript
Linguagem de ProgramaçãoRevisão de Introdução à programação 27
Prof. Mauro Jansen
Ambientes de desenvolvimento
São ambientes de desenvolvimento que integram diversas ferramentas para a criação de programas em uma linguagem de programação
Também chamados de IDE´s (Integrated Development Environment)
Exemplo de ferramentas encontradas nos IDE´s: Editor de textos adequado para a programação Ajuda (Help) on-line Compilador, linkeditor e depurador integrados Ferramentas para desenho de janelas
(formulários) Linguagem de ProgramaçãoRevisão de Introdução à programação 28
Prof. Mauro Jansen
Desenvolvimento de software
Segue algumas fases Análise: definição do QUÊ o programa deverá fazer
Projeto: definição de COMO o programa executará seu objetivo
Implementação: codificação (criação de um ou mais programas em uma linguagem)
Testes: testes isolados e de integração
Linguagem de ProgramaçãoRevisão de Introdução à programação 29
Prof. Mauro Jansen
O que preciso saber para programar?
Noções de algoritmos e lógica de programação
Conhecer a estrutura, comandos e símbolos da linguagem de programação escolhida
Para linguagens de baixo nível, conhecer também a arquitetura do hardware
Prática... Muita prática
Linguagem de ProgramaçãoRevisão de Introdução à programação 30
Prof. Mauro JansenLinguagem de ProgramaçãoRevisão de Introdução à programação 31
Estruturação de Algoritmos(Estruturas básicas para criação e representação
de algoritmos)
Prof. Mauro Jansen
Estruturação de algoritmos
São formas possíveis de resolução e representação de algoritmos Resolução
Sequencial Condicional Repetição
Representação Linguagem natural / descrição narrativa Fluxograma Pseudocódigo
Linguagem de ProgramaçãoRevisão de Introdução à programação 32
Prof. Mauro Jansen
Estruturas de resolução
Ao buscar uma solução de um problema criando um algoritmo, sempre teremos pelo menos uma das seguintes estruturas: Resolução Sequencial: sequência linear de
instruções, uma após a outra Resolução Condicional: existência de
“condições” para executar algumas instruções.
Resolução com Repetição: algumas instruções precisam ser executadas várias vezes. Linguagem de Programação
Revisão de Introdução à programação 33
Prof. Mauro Jansen
Estruturas de representação
Linguagem natural / descrição narrativa
FluxogramaDiagrama de ChapinPseudocódigo
Linguagem de ProgramaçãoRevisão de Introdução à programação 34
Prof. Mauro Jansen
Linguagem natural
Apesar de ser possível escrever algoritmos para pessoas usando a linguagem natural, ela não é adequada para a construção de algoritmos para o computador
Não tem características das LP´s: Não têm rigidez sintática:
Traga caneta azul ou preta. Traga caneta (Azul ou preta)
Não tem rigidez semântica: A velhinha ouviu o barulho da janela
Linguagem de ProgramaçãoRevisão de Introdução à programação 35
Prof. Mauro Jansen
Fluxograma: exemplo
Linguagem de ProgramaçãoRevisão de Introdução à programação 36
Algoritmo em forma de fluxograma, para solicitar dois números e mostrar qual o maior:
Início
Leia num1, num2
Num1>num2?
Maior num1
sim não
Maior num2
Escreva Maior
Fim
Prof. Mauro Jansen
Diagrama de Chapin: exemplo
Linguagem de ProgramaçãoRevisão de Introdução à programação 37
Leia num1, num2
sim não
maior num1 maior num2
Escreva “O maior é: ”,maior
Fim
Algoritmo referente ao problema do maior número, representado em diagrama de Chapin:
num1>num2
Prof. Mauro Jansen
Pseudocódigo
Assemelha-se à forma como os programas são escritos.
Para traduzir o pseudocódigo para uma linguagem de programação, basta conhecer o vocabulário e regras sintáticas da linguagem.
Busca a rigidez sintática e semântica, porém sem o detalhamento exigido nas linguagens de programação
Linguagem de ProgramaçãoRevisão de Introdução à programação 38
Forma para a representação de algoritmos rica em detalhes, como a definição dos tipos das variáveis usadas no algoritmo.
Prof. Mauro Jansen
Pseudocódigo – estrutura básica
Linguagem de ProgramaçãoRevisão de Introdução à programação 39
Algoritmo <nome do Algoritmo>Variáveis <lista de variáveis>Início <bloco de comandos>Fim
Prof. Mauro Jansen
Pseudocódigo - exemplo
Pseudocódigo referente ao problema do maior número:
Linguagem de ProgramaçãoRevisão de Introdução à programação 40
Algoritmo “Maior”Var num1, num2, maior: inteiroInicio Escreva(“Digite o 1° numero:”) Leia(num1) Escreva(“Digite o 2° numero:”) Leia(num2) se (num1>num2) entao maior <- num1 senao maior <- num2 fimse escreva(maior)FimAlgoritmo
Prof. Mauro JansenLinguagem de ProgramaçãoRevisão de Introdução à programação 41
Tipos de dados, variáveis, expressões e
operadores
Prof. Mauro Jansen
Introdução a tipos de dados
Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória
Estas informações podem ser classificadas em dois tipos: As instruções, que comandam o funcionamento
da máquina e determinam a maneira como devem ser tratados os dados
Os dados propriamente ditos, que correspondem à porção das informações a serem processadas pelo computador
Linguagem de ProgramaçãoRevisão de Introdução à programação 42
Prof. Mauro Jansen
Introdução a tipos de dados
Internamente, essas informações (dados e instruções), ficam registradas na memória na forma binária
Porém, para facilitar, as linguagens de programação oferecem a noção de TIPOS DE DADOS, que nos permite manipular as informações de forma mais parecida com o modo como fazemos no mundo real
Linguagem de ProgramaçãoRevisão de Introdução à programação 43
Prof. Mauro Jansen
Conceito de tipos de dados
Podemos definir tipos de dados como um conjunto de objetos que têm em comum o mesmo comportamento diante de um conjunto definido de operações
Exemplos: Pessoas Z (conjunto dos números inteiros) R (conjunto dos números reais) Letras
Linguagem de ProgramaçãoRevisão de Introdução à programação 44
Prof. Mauro Jansen
Tipos de dados básicos das linguagens de programação
Linguagem de ProgramaçãoRevisão de Introdução à programação 45
Tipos de Dados
Numérico
inteiro real
Literal
caractere String
Lógico
OBS: Além dos tipos básicos, as linguagens podem oferecer variações dos mesmos ou outros tipos como Data, Hora, etc.
Prof. Mauro Jansen
Tipos de dados básicos
Numéricos: somente números, positivos ou negativos Inteiros: não possuem parte fracionária. Ex: 10,
-9, 0 Reais: podem ter parte fracionária. Ex: 15.25 , -15
Literais: letras, dígitos ou símbolos Caractere: um único caractere. Ex: ‘a’, ‘7’, ‘@’ String: conjunto de caracteres, formando uma
palavra, frase ou parágrafo. Ex: “Algoritmos”, “** ABC **”
Lógicos (ou booleanos): somente dois valores possíveis: verdadeiro ou falso
Linguagem de ProgramaçãoRevisão de Introdução à programação 46
Prof. Mauro Jansen
Variáveis : conceito e características
Podemos imaginar uma variável como o nome de um local na memória principal do computador onde se pode colocar qualquer valor do conjunto de valores possíveis do tipo básico associado
Características: um nome (ou identificador) um tipo de dado associado à mesma e o dado (valor) por ela guardado.
Linguagem de ProgramaçãoRevisão de Introdução à programação 47
tipo de
dado
Nome da variável
valor
Prof. Mauro Jansen
Declaração de variáveis
Declarar uma variável corresponde à criação de um local na memória rotulado com o nome da variável (identificador) e marcado com o tipo de valores que ela pode conter:
Linguagem de ProgramaçãoRevisão de Introdução à programação 48
Memória RAMtipo de dadotipo de dado
Nome da variável
valorNome da variável
valorNome da variável
valor
Prof. Mauro Jansen
Regras para definir nomes de variáveis
O primeiro caractere do nome deve ser uma letra.
Se houver mais de um caractere, só se deve usar letra ou algarismo.
Há diferença em usar letras maiúsculas e minúsculas.
Não usar palavras que sejam reservadas Às Linguagens de Programação.
Devemos dar nomes representativos para as variáveis.
Linguagem de ProgramaçãoRevisão de Introdução à programação 49
Prof. Mauro Jansen
Declaração de variáveis em pseudocódigo
Colocamos o identificador do tipo de dado seguido do nome da variável
Identificadores de tipos de dados:
Exemplos:int valor;real salario, taxa;char opcao;
Linguagem de ProgramaçãoRevisão de Introdução à programação 50
Inteiro – int ou integerReal – real, float ou doubleLiteral – char (caractere) ou string (cadeia de caracteres)Lógico – boolean ou lógico
Variáveis do mesmo tipo podem ser declaradas juntas, bastando separar os identificadores por vírgula.
Prof. Mauro Jansen
Expressão
Combinação de operandos (valores ou variáveis), operadores, e chamadas de funções que são interpretadas (avaliadas) de acordo com as regras de precedência e de associatividade particulares a uma determinada linguagem de programação, que calcula e, em seguida, produz (retorna) um valor
O tipo da expressão é o tipo do dado resultante:
Linguagem de ProgramaçãoRevisão de Introdução à programação 51
Tipo de expressão
Exemplos
Aritmética 2+2
salario * reajuste / 100
Literal “Algoritmos”+” e programação”
Lógica 5 > 3
Prof. Mauro Jansen
Operadores e operandos
Operadores são elementos que atuam sobre operandos e produzem um resultado
Operandos são valores ou variáveis de um dos tipos de dados
Operadores binários: exigem dois operandos Ex: 3 + 6
Operadores unários: exigem um único operando Ex: -2
Linguagem de ProgramaçãoRevisão de Introdução à programação 52
Prof. Mauro Jansen
Operadores aritméticos
Usados em expressões aritméticas
Linguagem de ProgramaçãoRevisão de Introdução à programação 53
Prof. Mauro Jansen
Operadores lógicos e de comparação
São usados em expressões lógicasOperadores lógicos:
Operadores de comparação:
Linguagem de ProgramaçãoRevisão de Introdução à programação 54
Prof. Mauro JansenLinguagem de ProgramaçãoRevisão de Introdução à programação 55
Sub-Algoritmos
Prof. Mauro Jansen
Sub-algoritmos
São blocos de instruções que realizam tarefas específicas, que são executadas várias vezes ou parte de uma tarefa maior
Um algoritmo completo é dividido em: Um algoritmo principal Diversos sub-algoritmos
Linguagem de ProgramaçãoRevisão de Introdução à programação 56
Prof. Mauro Jansen
Sub-algoritmos – ilustração do funcionamento:
Linguagem de ProgramaçãoRevisão de Introdução à programação 57
Subalgoritmo 1instrução 1Subalgoritmo 2instrução 2
Algoritmo Principalinstrução 1instrução 2Subalgoritmo 1instrução 3
Subalgoritmo 2instrução 1instrução 2
A execução inicial aqui e segue a sequência das instruções.
A execução do Algoritmo Principal é interrompida até que o Subalgoritmo 1 seja executado, continuando em seguida a partir da instrução 3.
Executado no momento em que é invocado pelo Algoritmo Principal.
A execução do Subalgoritmo 1 é interrompida até que o Subalgoritmo 2 seja executado, continuando em seguida a partir da instrução 2.
Executado no momento em que é invocado pelo Subalgoritmo 1.
Terminada a execução, volta para continuar o Subalgoritmo 1. Quando terminar o Subalgoritmo 1, volta para continuar com a execução do Algoritmo Principal.
Prof. Mauro Jansen
Tipos de sub-algoritmos
PROCEDIMENTO: é um sub-algoritmo que não retorna valor ao algoritmo chamador ou que retorna dois ou mais valores Exemplos: solicita_valores, lista_resultados
FUNÇÃO: é um sub-algoritmo que calcula um valor a partir de outros fornecidos a ela, retornando o valor calculado Exemplos: primo(<número>),
fatorial(<número>)
Linguagem de ProgramaçãoRevisão de Introdução à programação 58
Prof. Mauro Jansen
Exemplo de pseudocódigo com sub-algoritmo
Linguagem de ProgramaçãoRevisão de Introdução à programação 59
Algoritmo SomaDeDoisNumerosVariáveis num1, num2, s: Inteiro
Função soma (x, y: Inteiro)Variáveis adicao: InteiroInício adicao x + y Retorne adicaoFim
Início Escreva “Digite o Primeiro Numero” Leia num1 Escreva “Digite o Segundo Numero” Leia num2 s soma(num1, num2) Escreva sFim
Aqui se inicia o algoritmo principal, que solicita dois números ao usuário e, em seguida, chama a função que realiza a soma dos números. Guarda a soma retornada pela função na variável s e mostra o valor na tela.
Quando a função é chamada, a execução do algoritmo principal fica parada até que a função seja finalizada e retorne o resultado.
Top Related