Fundamentos de Programação

Documentos relacionados
Introdução a Programação de Jogos

Introdução aos Algoritmos

Introdução aos Algoritmos

Algoritmos Estrutura Condicional

Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 04 Algoritmos e Programação Estruturada

É neste ponto que entra o conceito de lógica de programação.

Aula 3: Algoritmos: Formalização e Construção

Introdução à Programação

& somadosnumeros = valor

A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado..

Programação de Computadores I Introdução PROFESSORA CINTIA CAETANO

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Programação para Games I

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza

Introdução à Programação

Programação: Vetores

Pseudocódigo e Visualg

CONCEITOS DE ALGORITMOS

SSC304 Introdução à Programação Para Engenharias. Introdução a Linguagem C. GE4 Bio

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos Prof. Renato Pimentel. Computação

Lógica de Programação, Algoritmos e Estruturas de Dados

Conhecendo a Linguagem de Programação C

Introdução à linguagem C

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Conceitos Básicos ENTRADA PROCESSAMENTO SAÍDA

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof.

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

Programação Estruturada Aula VisualG

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Aula 08 Introdução à Algoritmos. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Fundamentos de Programação

- Aula 01, 02, 03 e 04 Apresentação da disciplina.

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Algoritmos e Programação

Introdução à Algoritmos INF 1005 e INF Programação I

Working 03 : Conceitos Básicos I

Introdução à Programação. Expressões Booleanas e Comandos Condicionais

AULA 02. OBJETIVO: Desenvolvimento e solução de Algoritmos. LÓGICA DE PROGRAMAÇÃO

INF 1005 Programação I

TCC 00308: Programação de Computadores I Introdução

15/03/2018. Professor Ariel da Silva Dias Algoritmo e Contagem de Instruções. Prof. Ariel da Silva Dias -

Curso: Análise e Desenvolvimento de Sistemas. (Conceitos Práticos de Lógica de Programação)

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Algoritmos e Lógica de Programação Introdução e formas de representação

Programação Básica. Estrutura de um algoritmo

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

Introdução a Computação

Técnicas de Programação

Introdução a Computação

CMP Algoritmos Algoritmos - Introdução Geral. Professor Vicente Paulo de Camargo

Estruturas de Repetição

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E DO DESPORTO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS CEFET-MG UNIDADE DE ENSINO

Linguagem de Programação

Estrutura de Dados Básica

Programação Estruturada Aula - Estruturas de Repetição

Introdução à Programação

Linguagem C. Linguagem artificial e formal usada para comunicar instruções ao computador. Proposta por Dennis Ritchie entre 1969 e 1973.

Ambiente de desenvolvimento

GABARITO Questão a b c d e

Noções de algoritmos - Aula 1

Linguagem C estruturas de repetição

Algoritmos e Técnicas de Programação

Programação I A Linguagem C. Prof. Carlos Alberto

Introdução à Programação Estruturada Parte 2. Material da Prof. Ana Eliza

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Algoritmos e Técnicas de Programação

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

ALGORITMOS AULA 1. Profª Amanda Gondim

Linguagem C. André Tavares da Silva.

Introdução à Programação

Fábio Rodrigues / Israel Lucania

Lógica para programação II Seção 1 - Histórico e Introdução Primeiros Programas

Introdução à Programação I

Capítulo 1 Conceitos Básicos

Introdução a Computação

Fundamentos de Programação

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Algoritmos e Programação

Análise e Complexidade de Algoritmos

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Programação Procedimental

Aula 3:Introdução à Linguagem C

Fundamentos de Lógica e Algoritmos Aula 2.5 Conceitos Básicos de Algoritmos. Prof. Dr. Bruno Moreno

Entrada. Comando 1 Comando 2. Saída

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Algoritmos e Programação

Programação de Computadores

Conceitos Básicos de Programação

Algoritmos e Estruturas de Dados

COMANDOS DE CONTROLE DE FLUXO. Luís Charneca.

Processamento de Dados aplicado à Geociências. AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões

Fundamentos de Programação

Algoritmos e Programação

Programação II. Aula 3

Algoritmos e Ciclo de Desenvolvimento Aula 02: 01/03/2012

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

Transcrição:

Fundamentos de Programação CP41F Aula 2 Prof. Daniel Cavalcanti Jeronymo Conceito de algoritmo. Raciocínio lógico na construção de algoritmos. Estrutura de algoritmos. Universidade Tecnológica Federal do Paraná (UTFPR) Engenharia de Computação 1º Período 1/26

Desafio Plano de Aula Conceito de algoritmo Características de algoritmos Representação de algoritmos Raciocínio lógico na construção de algoritmos Estrutura de algoritmos Tipos de dados Comandos 2/26

Elabore uma sequência de passos para obter 4L de água a partir de um galão de 5L e outro galão de 3L Desafio 3/26

Como desenvolver uma solução que seja reproduzível para todos os casos desta situação? Desafio Desejável: solução na forma de receita de bolo, basta seguir passos bem definidos. Elementos do problema: Entradas - dois galões Operações - encher, esvaziar, transferir Saída desejada - 4 litros 4/26

Solução possível: 1. Iniciar com os galões vazios 2. Encher o galão de 5 litros 3. Transferir conteúdo do galão de 5 litros para o de 3 litros 4. Esvaziar o galão de 3 litros 5. Transferir conteúdo do galão de 5 litros para o de 3 litros 6. Encher o galão de 5 litros 7. Transferir conteúdo do galão de 5 litros para o de 3 litros Desafio 5/26

Desafio Como verificar o algoritmo? Utilizar o teste de mesa (table test): 1. Iniciar com os galões vazios g5 =? g3 =? 2. Encher o galão de 5 litros g5 =? g3 =? 3. Transferir conteúdo do galão de 5 litros para o de 3 litros 4. Descartar a água do galão de 3 litros 5. Transferir conteúdo do galão de 5 litros para o de 3 litros g5 =? g3 =? g5 =? g3 =? g5 =? g3 =? 6. Encher o galão de 5 litros g5 =? g3 =? 7. Transferir conteúdo do galão de 5 litros para o de 3 litros g5 =? g3 =? 6/26

Desafio Cada linha é um passo Cada coluna uma variável Execute o teste de mesa! 1. Iniciar com os galões vazios g5 =? g3 =? 2. Encher o galão de 5 litros g5 =? g3 =? 3. Transferir conteúdo do galão de 5 litros para o de 3 litros 4. Descartar a água do galão de 3 litros 5. Transferir conteúdo do galão de 5 litros para o de 3 litros g5 =? g3 =? g5 =? g3 =? g5 =? g3 =? 6. Encher o galão de 5 litros g5 =? g3 =? 7. Transferir conteúdo do galão de 5 litros para o de 3 litros g5 =? g3 =? 7/26

Desafio Resultado final 1. Iniciar com os galões vazios g5 = 0 g3 = 0 2. Encher o galão de 5 litros g5 = 5 g3 = 0 3. Transferir conteúdo do galão de 5 litros para o de 3 litros 4. Descartar a água do galão de 3 litros 5. Transferir conteúdo do galão de 5 litros para o de 3 litros g5 = 2 g3 = 3 g5 = 2 g3 = 0 g5 = 0 g3 = 2 6. Encher o galão de 5 litros g5 = 5 g3 = 2 7. Transferir conteúdo do galão de 5 litros para o de 3 litros g5 = 4 g3 = 3 8/26

Definição: Conjunto de regras e operações bem definidas e ordenadas cuja execução passo a passo objetiva a solução de um problema em um número finito de etapas. Conceito de Algoritmo Passo a passo: cada passo é completado antes que o próximo inicie. Bem definidas: cada passo é completamente definido a partir da entrada atual e passos anteriores. 9/26

Algoritmo: uma representação de solução para um problema. Conceito de Algoritmo Programa: Sequência de instruções a serem executadas por um computador de acordo com um algoritmo 10/26

O algoritmo no contexto computacional desempenha um papel fundamental: é o elo de ligação entre o mundo real e o computacional. Conceito de Algoritmo 11/26

Características de Algoritmos Finitude: um algoritmo deve sempre terminar após um número finito de passos. Definição: cada passo de um algoritmo deve ser precisamente definido, sem ambiguidades. Entradas: um algoritmo deve ter zero ou mais entradas. Saídas: um algoritmo deve ter uma ou mais saídas. Efetividade: cada operação deve executar em tempo finito 12/26

Há quatro maneiras de representação: Representação de Algoritmos Descrição Narrativa ou Linguagem Natural Fluxograma Pseudocódigo Linguagem de Programação 13/26

Descrição Narrativa ou Linguagem Natural: Representação de Algoritmos É a descrição daquilo que se quer fazer, similar a comunicação humana como em uma receita de bolo, manual de produto, direções para um lugar, regras de um jogo, etc. 1. Ler A e B 2. Somar A e B 3. Caso a soma seja maior que cinco, imprimir Maior que 5 4. Caso contrário, imprimir Menor que 5 14/26

Fluxograma: Representação de Algoritmos São representações gráficas do algoritmo, enfatizando passos individuais e o fluxo de controle (execução). Permitem a visualização do fluxo lógico através do tempo 15/26

Fluxograma - símbolos: Representação de Algoritmos 16/26

Pseudocódigo: Linguagem intermediária entre linguagem natural e linguagens de programação para descrição de algoritmos. Utiliza a estrutura de linguagens de programação porém visa a interpretação por humanos e não por computadores. ALGORITMO SOMA Entradas: nenhuma Saídas: Soma Declarar N1, N2, Inteiros LER N1, N2 Soma <- N1 + N2 SE Soma > 5 ENTÃO IMPRIMIR Maior que 5 SENÃO IMPRIMIR Menor que 5 FIM SE FIM ALGORITMO Representação de Algoritmos 17/26

Linguagem de programação: Linguagem de alto ou baixo nível que pode descrever algoritmos. Representação de Algoritmos Utiliza estruturas e pode ser processada por computadores, sendo compilada ou interpretada. #include <stdio.h> int main(void) { int a=0,b=0,soma=0; scanf( %d, %d, &a, &b); soma = a + b; if(soma > 5) printf( %d é maior que 5\n, soma); else printf( %d é menor que 5\n, soma); return soma; } Leitura: Joel on Software The Law of Leaky Abstractions https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/ 18/26

Raciocínio lógico na construção de algoritmos Lógica: "A lógica nos ensina a colocar ordem no pensamento pensar com ordem Lógica de programação: Objetiva a construção de algoritmos para solução de problemas através da ordenação do pensamento. Lógica matemática: Prova de declarações matemáticas 19/26

Análise do pseudocódigo anterior: Raciocínio lógico na construção de algoritmos Lógica de programação: ordem de declarações para resolver um problema. ALGORITMO SOMA Entradas: nenhuma Saídas: Soma Declarar N1, N2, Inteiros LER N1, N2 Soma <- N1 + N2 SE Soma > 5 ENTÃO IMPRIMIR Maior que 5 SENÃO IMPRIMIR Menor que 5 FIM SE FIM ALGORITMO Lógica matemática: expressões que podem ser avaliadas como verdadeiras ou falsas 20/26

Teorema do Programa Estruturado: Três estruturas são suficientes para representar qualquer função computável. Estrutura de Algoritmos sequência seleção iteração Primeira observação baseada no comportamento de processadores e da máquina de Turing. 21/26

Teorema do Programa Estruturado: Estrutura de Algoritmos sequência seleção iteração instrução escolha escolha A iteração é uma seleção onde uma das instruções retorna a escolha e a outra sai da estrutura instrução instrução instrução instrução instrução 22/26

Variável: Tipos de Dados Porção de memória onde um valor pode ser armazenado e lido. No programa, esse espaço de memória é associado a um nome (identificador) e um tipo. No executável, é apenas um endereço e um número. 23/26

Identificadores: Nomes utilizados para referenciar variáveis, funções ou outros objetos. Letras, dígitos e sublinhados (_). Tipos de Dados Não podem começar com dígito. (impediria a especificação de literais) Não podem ter espaços. Não podem ser iguais a palavras-chave e nem repetidos. 24/26

Dados primitivos: Caractere, inteiro, real, enumerado Constantes Tipos de Dados Geralmente a declaração do dado é feita junto com o identificador: real a; caractere x,z; A linguagem C usa tipos estáticos e exige a declaração de variáveis com tipos. 25/26

São disponibilizados em bibliotecas ou definidos em outros algoritmos: ler escrever Comandos 26/26