Sumário. Computador. Processador. Computador Noção de algoritmo Linguagem de programação Léxico, sintaxe e semântica Gramáticas Fluxogramas

Documentos relacionados
ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber 3/10/ :43 AM

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

Introdução a Programação de Jogos

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

Introdução à Programação em C Input / Output

Introdução à Programação em C

Introdução a Computação

Introdução à Programação em C (II)

Introdução à Programação em C (I)

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

Introdução à Programação

TÉCNICO DE INFORMÁTICA - SISTEMAS

Ambiente de desenvolvimento

& somadosnumeros = valor

Fundamentos de Programação

Sintática: como é escrito cada elemento da linguagem de programação.

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Aula 4 Introdução ao C

Fluxogramas e variáveis

Compiladores. Introdução

Outras Linguagens. Aulas 26 e 27. DECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos

Introdução à Programação

INF 1005 Programação I

Projeto de Compiladores

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

15/03/2018. Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação

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

Estruturas condicionais

LINGUAGEM E TECNICAS DE PROGRAMAÇÃO

Linguagens de Programação

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

Linguagem de Programação

Algoritmos e Programação

CONCEITOS DE ALGORITMOS

Introdução à Programação. João Manuel R. S. Tavares

Introdução à Programação em C (I)

Introdução à Programação

Paradigmas 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

Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Fluxograma Pseudocódigo Estruturas de decisão. Professor Leandro Augusto Frata Fernandes

Introdução a Computação

Revisão: linguagens de programação

Introdução à Programação

Laboratório 3 Comandos de repetição while, do-while e for

Programação: Vetores

Linguagem C estruturas de repetição

Introdução à Programação

Introdução à Programação I

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Fundamentos da Programação

UNIVERSIDADE DA BEIRA INTERIOR

Programação Aplicada à Engenharia

PLANO DE UNIDADE DIDÁTICA- PUD

3. Linguagem de Programação C

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

ALGORITMOS E ESTRUTURA DE DADOS

4) Defina o que vem a ser um algoritmo, e porque, o mesmo depende do processo.

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes

DECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos. Apresentação. Computação e Programação (CP) 2013/2014.

Programação para Games I

FERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Procedimentos Chamada de Funções e Parâmetros

SEMÂNTICA. Rogério Rocha. rode = program simples = var x : int := 3 in x := x + 5 end.

Noções de algoritmos - Aula 1

Procedimentos Chamada de Funções e Parâmetros

Linguagens de Programação Aula 3

Introdução à Linguagem C

Linguagens compiladas: C++ Fora do livro adoptado

Fundamentos de Programação 1

3. Linguagem de Programação C

CCO 016 / COM 110 Fundamentos de Programação

Introdução a Programação de Jogos

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

Métodos Computacionais em Física

Aula 01 Algoritmos e lógica de programação e introdução ao C++

MC-102 Aula 06 Comandos Repetitivos

ESTRUTURAS DE CONTROLE

Primeiros programas.

Um Compilador Simples. Definição de uma Linguagem. Estrutura de Vanguarda. Gramática Livre de Contexto. Exemplo 1

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

Paradigmas de Linguagens

Introdução à linguagem C

Introdução à Programação

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1

Noções de algoritmos - Aula 1

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

Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Aula 5 ESTRUTURAS DE REPETIÇÃO (WHILE)

Programação Estruturada

Transcrição:

Sumário Computador Noção de algoritmo Linguagem de programação Léxico, sintaxe e semântica Gramáticas Fluxogramas 02-1 Computador Máquina Memória Armazena dados Dispositivos de entrada/saída Permite a interacção com os utilizadores leitura e escrita de dados Unidade Funcional Acede a posições de memória Executa sequencialmente instruções muito simples 02-2 Processador Unidade Funcional de um computador Acede a posições de memória Sítio onde armazena dados Dados escalares Executa sequencialmente instruções muito simples Lê valor, armazena valor Soma, Subtrai Compara Saltos condicionais 02-3

Programa (código máquina) 7F454C46010101000000000000000000020003000100000080800408340 00000F40000000000000034002000020028000600050001000000000000 0000800408008004089D0000009D000000050000000010000001000000A 0000000A0900408A09004080E0000000E00000006000000001000000000 00000000000000000000BA0E000000B9A0900408BB01000000B80400000 0CD80B801000000CD8000000048656C6C6F2C20776F726C64210A000000 546865204E65747769646520417373656D626C657220302E39382E33390 0002E7368737472746162002E74657874002E64617461002E627373002E 636F6D6D656E74000000000000000000000000000000000000000000000 00000000000000000000000000000000000000B00000001000000060000 0080800408800000001D000000000000000000000010000000000000001 10000000100000003000000A0900408A00000000E000000000000000000 00000400000000000000170000000100000001000000AE900408AE00000 002000000000000000000000001000000000000001C0000000100000000 00000000000000B00000001F00000000000000000000000100000000000 00001000000030000000000000000000000CF0000002500000000000000 000000000100000000000000 02-4 Programa (Linguagem máquina).cstring incl -4(%rbp) LC0: L2: cmpl $99, -4(%rbp).ascii "%d \0" jle L3.text movl $0, %eax.globl _main leave _main: ret LFB3: pushq %rbp LCFI0: movq %rsp, %rbp LCFI1: subq $16, %rsp LCFI2: movl $0, -4(%rbp) jmp L2 L3: movl -4(%rbp), %esi leaq LC0(%rip), %rdi movl $0, %eax call _printf 02-5 Programa em C #include <stdio.h> int main(){ int i; i=0; while (i <100){ printf("%d ", i); i ++; return 0; 02-6

Programa Algoritmo escrito numa linguagem de programação ordena = 1; while (ordena == 1) { ordena = 0; i = 0; while (i<(numvec-1)){ if (v[i] > v[i+1]){ aux = v[i+1]; v[i+1] = v[i]; v[i] = aux; ordena = 1; i++; n= 1; soma= 0; while(true){ sn = a*pow(r, n-1); soma += sn; n++; 02-7 Algoritmo Definição informal: Sequência de instruções para atingir um fim Exemplos: Receitas Instruçoes de montagem de kits Instruções para lavar as mãos 02-8 Algoritmo 02-9

Algoritmo Definição formal: Sequência finita de instruções bem definidas e não ambíguas Instruções com execução precisa, em tempo finito e com esforço finito Exemplo Sequência de instruções para ordenar uma lista de inteiros Contra Exemplo Instruções para cálculo da soma de uma série geométrica por adições exaustivas 02-10 Linguagem de Programação Notação sistemática que permite descrever uma sequência de instruções que o computador pode executar Linguagem máquina Instruções elementares Dependentes do processador Linguagens de alto nível Instruções complexas Independentes do processador Exemplo Se (a<0) imprime( negativo ) 02-11 Linguagem Léxico Palavras da linguagem Durante a noite o aluno leo atemtamemte o relatorio Sintaxe Regras que determinam as relações entre as palavras da linguagem A o o durante relatório atentamente aluno noite leu Semântica Significado dado às frases Durante o relatório a noite leu o aluno atentamente 02-12

Sintaxe e Gramática Gramática Descrição formal das regras de sintaxe de uma linguagem Incumprimento das regras da Gramática Erro de compilação Descrição: BNF (Backus Naur-Form) Diagramas sintáticos 02-13 Gramática Simbolos terminais If, while, for, Palavras, sinais de pontuação, Simbolos não terminais Função, instrução Sintagmas, complementos Símbolos inicial Programa Frase Regras de Produção Combinações válidas dos vários elementos 02-14 Instrução condicional instrucao: instrucao_se instrucao_enquanto instrucao_se: se (condicao) instrucoes instrucoes : instrucao+ instrucao instrucao_se instrucao_enquanto instrucao_se se ( condicao ) instrucoes instrucoes instrucao 02-16

Implicações Gramáticas Bem definidas Regras de construção obrigatórias Necessidade de decorar sintaxe Programação Erros sintáticos Necessidade de os evitar!!!! Necessidade de os compreender Solução: Ler e escrever muitos programas!!!!!! 02-17 Algoritmos Sequencia de instruções Com saltos... Representação formal Fluxogramas 02-18 Fluxograma Representação gráfica Operação Decisão Leitura/escrita Fluxo de execução Indicador de início/fim 02-19

Fluxogramas Indicador início / fim Indicador de início Sai uma seta indicadora de fluxo início Indicador de fim Entra uma setas indicadoras de fluxo fim 02-20 Fluxogramas Operação Representamoperação relizada Manipulação de valor Atribuição de valor Conta Entra uma seta indicadoras de fluxo Sai uma seta indicadoras de fluxo i 0 i i+1 02-21 Fluxogramas Leitura/ escrita Representauma intração com o utilizador Leitura de um valor (do teclado ou ficheiro) Escrita de um valor (no ecran ou ficheiro) Entra uma seta indicadoras de fluxo Sai uma seta indicadoras de fluxo lê dia imprime i 02-22

Fluxogramas Decisão Divisão do fluxo de execução Avcaliação de condição Selecção de operaçoes Entra uma seta indicadora de fluxo Saiem várias setas indicadoras de fluxo lê dia imprime i 02-23 Fluxograma início i 0 i < 100? imprime i i i+1 fim 02-24 Fluxograma + Programa início i 0 #include <stdio.h> int main(){ int i; i=0; Não i < 100? Sim imprime i while (i <100){ printf("%d ", i); i i+1 i ++; fim return 0; 02-25

Próximos capítulos Estrutura de um programa Comentários Constantes Variáveis Declaração Atribuição Inteiros, reais e caracteres Leituras e escritas Booleanos 02-26 Marques de Sá Capítulo 2 Arquitectura de Computadores (Arroz) Capítulo 1 Kerninghan enad Ritchie Capítulos 1.1 1.2 02-27