Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
UFRN Escola de Ciências e Tecnologia Introdução a Algoritmos ECT1103 – INFORMÁTICA FUNDAMENTAL Prof: Diego Rodrigues de Carvalho • Manter o telefone celular sempre desligado/silencioso quando estiver em sala de aula; • Nunca atender o celular na sala de aula. Objetivo da Aula • Introduzir o conceito de algoritmos; • Descrever as formas de representação de um algoritmo. Por Que Estudar Construção de Algoritmos? • Problema: Como construir uma trave de madeira? Etapas da Solução do Problema • Análise – Etapa em que o problema a ser resolvido é estudado em detalhes para definição dos materiais e passos necessários para a sua resolução; • Algoritmo – Utilização de ferramentas para descrever o problema com suas soluções: – Ferramentas: descrição narrativa, fluxograma ou português estruturado. Por Que Estudar Construção de Algoritmos? • Análise: o que eu preciso para resolver tal problema? – Material: madeira e ferramentas. Por Que Estudar Construção de Algoritmos? • Análise: – Usar pregos ou parafusos? – Esta decisão implica em usar martelo ou chave de fenda. Definir Passos 1 - Serrar a madeira para ficar no tamanho desejado: 2 – Pregar as pontas formando a trave: Algoritmos - Definição • Uma sequência de passos que visa atingir um objetivo bem definido; • Tem como objetivo representar o raciocínio (ordem dos passos) envolvido na realização de uma tarefa; • Exemplo (Colocar um carro em movimento): – Colocar a chave na ignição e dar partida no motor; – Pisar na embreagem; – Passar a primeira marcha; – Soltar a embreagem lentamente, enquanto pisa no acelerador. Algoritmos - Características • Finitude: algoritmos devem terminar após um número finito de passos; • Definição: cada passo deve ser precisamente definido; • Entradas: devem ter zero ou mais entradas; • Saídas: devem ter uma ou mais saídas; • Efetividade: todas as operações devem ser simples de modo que possam ser executadas em um tempo limitado. Exemplo de Problema • Defina um programa que receba dois números pelo teclado, calcule a média aritmética destes dois números e imprima o resultado no monitor; • Quais ferramentas posso utilizar para definir meu algoritmo ? Leia, some, divida, escreva, compare, multiplique, subtraia Formas de Representação de Algoritmos • Descrição Narrativa; • Fluxograma; • Pseudocódigo; • Linguagens de programação. Formas de Representação de Algoritmos • Descrição Narrativa: – Uso da linguagem natural; – Temos a inconveniência da má interpretação, originando ambigüidades e imprecisões; – Exemplo: a troca de um pneu furado; – Analisar as ambigüidades e imprecisões. Descrição Narrativa • Algoritmo: – afrouxar ligeiramente as porcas; – suspender o carro; – retirar as porcas e o pneu; – colocar o pneu reserva e as porcas; – abaixar o carro; – dar o aperto final nas porcas. Conceitos Fundamentais • Algoritmo: – De modo a torná-lo não ambíguo, é necessária uma formalização; – Definição de regras de semântica e sintaxe. Fluxograma • Uso de formas geométricas distintas produzindo ações distintas: Início ou fim do fluxograma; Entrada de dados; Cálculo de expressões; Saída de resultados; Tomada de decisão; Fluxo. Fluxograma Pseudocódigo • Uso de linguagem própria, aproximando-se mais das linguagens de alto nível, chamado, também de pseudolinguagem ou ainda portugol; • Forma geral: algoritmo nome_do_algoritmo ; variaveis < declaração_de_variáveis >; fim-variaveis inicio < instruções > ; fim Pseudocódigo • algoritmo Media_do_aluno; variaveis m1, m2, m3, media: real; fim-variaveis inicio m1 := leia( ); m2 := leia( ); m3 := leia( ); media := ((m1*4)+(m2*5)+(m3*6))/15; se media >= 7 então imprima(“APROVADO”); senão imprima(“REPROVADO”); fim-se fim Linguagens de Programação • Linguagens de programação: – Uma linguagem de programação é um método padronizado para descrever instruções para um computador; – É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Linguagens de Programação • Linguagens de baixo nível: – Linguagens de máquina, assembly. • Linguagens de alto nível: – Fortran, Cobol, C, C++, Java, Python, Basic, Pascal, etc. Conceitos Básicos • Baixo nível: – Código otimizado; – Indicado para situações em que seja necessário explorar com mais profundidade os recursos da máquina. • Alto nível: – Facilidade na programação do algoritmo; – Portabilidade; – Manutenção do código. Linguagens de alto Nível • Exemplo usando a linguagem C/C++: #include <iostream> using namespace std; int main() { float N1, N2, media; media = (N1+N2)/2.0; return 0; }