Linguagens de Programação Conceitos e Técnicas Definições e declarações Prof. Isabel Cafezeiro

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Técnicas de Programação II Revisão TP1 Parte2
Um programa em C Bibliotecas Variáveis globais
Programação II Estruturas de Dados
Universidade Federal do Pará Serviço Público Federal Centro de Ciências Exatas e Naturais Departamento de Informática Abril/2001.
Algoritmos e Programação Estruturada Conceitos básicos
LPG - I: Alocação Dinâmica de Memória - Ponteiros
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
7 Abstração Genérica Unidades genéricas e instanciação.
Linguagem C Funções.
Variáveis, Tipos de Dados e Constantes
PROGRAMAÇÃO ESTRUTURADA II
Linguagem de Programação I Parte II
Estrutura de Dados Unidade 16 Simulação da função Fatorial utilizando recursão – 16.1 Prof. Dr. Roberto Ferrari Jr.
UNIDADE 6 - complemento Funções recursivas
Modelos de Paradigmas de programação
Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato
Lógica Estruturada Aplicada
 São utilizadas para dividir um código maior (mais complexo) em partes menores (mais simples).  Quando uma mesma tarefa é realizada várias vezes em um.
Conversão de Tipos Exemplo: x + i, onde x é do tipo real e i é do tipo integer. A especificação da linguagem deve indicar se a linguagem suporta este tipo.
PCI- Estrutura Condicional Profa. Mercedes Gonzales Márquez.
Revisão Luis Antonio Tavares
Professor Ulisses Vasconcelos
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
MATA56 Tipos, Verificação de Tipos Agenda Objetivo desta aula: Introduzir os principais aspectos semânticos de variáveis Palavras-chave – nomes.
Fundamentos de Programação 1 Aula N. 02 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Laços de Repetição em C”
INE5408 Estruturas de Dados Programação estruturada e noções básicas da linguagem C.
Clique para editar o título Linguagem C Para programadores Python PMR
Fundamentos de Programação 1 Linguagem C Slides 03 – ‘Vetores’ Prof. SIMÃO Jean Marcelo SIMÃO Estrutura de Dados Homogêneas “Vetores” 1.
Computação – Informática Aula N. 05 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Matrizes em C” 1.
Tratamento de exceções em Java Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de.
Técnicas de Programação I Reconhecer e aplicar corretamente o conceito da Estrutura de Repetição com variável de controle.
Disciplina:PROA3V José Henrique Verhalem e Renan Tenório Professor: Alexandre Cassimiro Novembro 2015.
Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Funções Recursivas.
Linguagens de Programação Conceitos e Técnicas Valores e Tipos de Dados Prof. Isabel Cafezeiro
Universidade Federal de Campina Grande – UFCG Centro de Ciências e Tecnologias – CCT Unidade Acadêmica de Engenharia Química - UAEQ Universidade Federal.
Linguagens de Programação Conceitos e Técnicas Comandos Prof. Isabel Cafezeiro
Linguagens de Programação Conceitos e Técnicas Amarrações Prof. Isabel Cafezeiro
Linguagens de Programação Conceitos e Técnicas Expressões Prof. Isabel Cafezeiro
Linguagem de Programação – Aula 03 Prof. Me. Ronnison Reges Vidal.
Linguagens de Programação Conceitos e Técnicas Valores e Tipos de Dados Prof. Isabel Cafezeiro
Tópicos Preliminares Algorítmos I.
Linguagens de Programação Conceitos e Técnicas
Linguagens de Programação Conceitos e Técnicas
Profa. Mercedes Gonzales Márquez
Estruturas de Repetição
Complementos de Engenharia de Software A linguagem VDM++ (4ª parte – Funções avançadas) João Pascoal Faria
Linguagem C Para programadores Python
Prof. Wellington Franco Manipulação de Arquivos em C
FUNDAMENTO DE PROGRAMAÇÃO
UNIDADE 7 Tipos estruturados
INE 5201 – INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO
Complementos de Engenharia de Software A linguagem VDM++ (3ª parte – instruções; aplicação à descrição de algoritmos e.
Algoritmos e Programação MC102
Programação Orientada a Objetos*
Complexidade de Algoritmos
Profa. Maria Augusta Constante Puget
Programação Orientada a Objetos*
Linguagem PASCAL Tipos Estruturados
Prof. Rafael Mesquita Pilha Prof. Rafael Mesquita
Programação em assembly
Linguagem de Programação Aplicações Avançadas de Microprocessadores
Linguagem C Linguagem Imperativa
Prof. Rafael Mesquita Listas Encadeadas Prof. Rafael Mesquita
Matrizes.
Vetores.
Introdução a progrmação Comandos condicionais: if e switch
Compiladores – AnáLise léxica
RESULUÇÃO DOS EXERCÍCIOS E
Transcrição da apresentação:

Linguagens de Programação Conceitos e Técnicas Definições e declarações Prof. Isabel Cafezeiro

Linguagens de Programação definições & declarações Declaração: É um enunciado do programa que produz amarrações, possivelmente criando entidades. const float pi = 3.14 procedure S: forward typedef int inteiro var i: integer typedef struct {int d,m,a;} data; procedure S;begin... end Amarra identificador a valor! Amarra identificador a procedimento! Amarra identificador a tipo! Amarra identificador a variável! Amarra identificador a tipo! Amarra identificador a comando!

Linguagens de Programação definições & declarações Declaração: É um enunciado do programa que produz amarrações, possivelmente criando entidades. const float pi = 3.14 procedure S: forward typedef int inteiro var i: integer procedure S;begin... end Cria a variável i! Cria o tipo data! Cria o comando! typedef struct {int d,m,a;} data;

Linguagens de Programação definições & declarações Definição: É um enunciado do programa que produz amarrações, mas não cria entidades. const float pi = 3.14 procedure S: forward typedef int inteiro

Linguagens de Programação definições & declarações Declarações compostas: Tipos Sequenciais Declarações simples: constantes variáveis Procedimentos exceções pacotes classes Colaterais Recursivas

Linguagens de Programação definições & declarações Tipos Declarações simples: constantes variáveis Procedimentos exceções pacotes classes Amarram identificador a tipo! Pré existente: Criado no próprio enunciado: typedef int inteiro typedef struct {int d,m,a;} data;

Linguagens de Programação definições & declarações Tipos Declarações simples: constantes variáveis Procedimentos exceções pacotes classes Amarram identificador a tipo! Pré existente: Quando a criação do tipo é anterior ao o enunciado de declaração, a equivalência costuma ser estrutural typedef int inteiro1; typedef int inteiro2; main() { inteiro1 i = 2; inteiro2 j = 3; i = j; } Sem erro!!! Equivalência estrutural

Linguagens de Programação definições & declarações Tipos Declarações simples: constantes variáveis Procedimentos exceções pacotes classes Amarram identificador a tipo! typedef struct {int d,m,a;} data1 ; typedef struct {int d,m,a;} data2 ; main() { data1 p; data2 q; p = q; } Criado no próprio enunciado: Quando o tipo é criado no próprio enunciado de declaração, a equivalência costuma ser nominal I:\AULAS\LINGPROG\C>gcc equivnominal2.c equivnominal2.c: In function `main': equivnominal2.c:9: incompatible types in assignment

Linguagens de Programação definições & declarações Tipos Declarações simples: constantes variáveis Procedimentos exceções pacotes classes Amarram identificador a valor que não poderá ser alterado posteriormente #include int main (void) { const i = 6; printf ("%d \n", i); i = 3; printf("%d \n",i); } ?

Linguagens de Programação definições & declarações Tipos Declarações simples: Constantes dinâmicas: em C, em ADA variáveis Procedimentos exceções pacotes classes int valor(){ return(getchar()); } int main (void) { const i = valor(); printf ("%d \n", i); }

Linguagens de Programação definições & declarações Tipos Declarações simples: Constantes sem valor: em Java variáveis Procedimentos exceções pacotes classes final int j; constructor() { j = 1; }

Linguagens de Programação definições & declarações Tipos Declarações simples: variáveis Procedimentos exceções pacotes classes constantes Amarra identificador a variável normalmente criada no próprio enunciado var i: integer

Linguagens de Programação definições & declarações Tipos Declarações simples: variáveis Procedimentos exceções pacotes classes constantes Amarra identificador a variável pré existente Em ADA:... pop: integer renames population(state)... pop := pop+1 Em C++:... int r=10; int &j=r; j++;

Linguagens de Programação definições & declarações Tipos Declarações simples: variáveis Procedimentos exceções pacotes classes constantes Amarram identificador a comandos ! Em Pascal: procedure S; begin... end

Linguagens de Programação definições & declarações Tipos Declarações simples: variáveis Procedimentos exceções pacotes classes constantes Amarram identificador a procedimento a ser criado! Em Pascal: procedure S: forward

Linguagens de Programação definições & declarações Tipos Declarações simples: variáveis Procedimentos exceções pacotes classes constantes Amarração???? Em LISP: > ((lambda (x) (+ x 2)) 3) 5 ?

Linguagens de Programação definições & declarações Declarações compostas: Sequenciais Colaterais O efeito da segunda depende da amarração resultante da primeira O efeito da segunda independe da amarração resultante da primeira Em ML: val e = and pi = ; val twicepi = 2*pi

Linguagens de Programação definições & declarações Declarações compostas: Recursivas Usam a amarração que elas mesmas produzem Em Pascal: Type proximo = ^registro; registro = record elemento: integer; elo: proximo; end; Em C: void segunda(int); void primeira(int n){ if (n<0) return; segunda(n-1); } void segunda(int n){ if (n<0) return; primeira(n-1); } Em LISP: (define fat (lambda (n) (if (zero? n) 1(* n (fat (- n 1))))))

Linguagens de Programação definições & declarações Bloco: Escopo de Declarações Delimita o escopo de declarações Em LISP: (let ((a 3) (b 5)) (+ a b)) Em C: if (x > y) { int z = x; x = y; y = z; } Comandos de bloco Expressão de bloco D C As amarrações D são de uso exclusivo em C (let D E) As amarrações D são de uso exclusivo em E

Linguagens de Programação definições & declarações Declarações simples: Escopo de Declarações do final da declaração até o final do bloco que a engloba; Em Pascal: var num: integer; function fatorial(i:integer): integer; var fat,k: integer; begin fat := 1; for k:=1 to i do fat := fat * k; fatorial := fat; end; begin readln(num); if (num >=0) then writeln(fatorial(num)) end. Em C: main() { int a = 1; a = a+1; { int b = 2; a = a+b; }... }

Linguagens de Programação definições & declarações Declarações simples: Escopo de Declarações do ponto da declaração ao final do programa Em C: int impar (int n){ return n%2; } int negativo (int n) { return n < 0; } int multiplo7 (int n) { return !(n%7); } main( ) {... }

Linguagens de Programação definições & declarações Declarações compostas: Sequenciais Escopo de Declarações O escopo de cada subdeclaração vai do final da própria subdeclaração até o final do bloco que a engloba; Em Pascal: type sub1= 1..3; sub2= 1..5; a= array [sub1] of integer; b= array [sub2] of a; x= array [sub2,sub1] of integer;

Linguagens de Programação definições & declarações Declarações compostas: Colaterais Escopo de Declarações O escopo de cada subdeclaração vai do final da declaração colateral até o final do bloco que a engloba; Em ML: val e = and pi = ; val twicepi = 2*pi Em ML: val pi = and txicepi = 2*pi;

Linguagens de Programação definições & declarações Declarações compostas: Recursivas Escopo de Declarações O escopo de cada subdeclaração vai do início da declaração recursiva até o final do bloco que a engloba; Em C: int fatorial(int n) { if (n==0) return 1; else return n*fatorial(n-1); }

Linguagens de Programação definições & declarações Qualification Principle Comandos de bloco Expressão de bloco É possível incluir um bloco em qualquer categoria sintática, desde que as construções desta a categoria sintática especifiquem algum tipo de computação. Declarações de bloco É uma declaração contendo uma subdeclaração local D e subdeclarações D', de forma que as amarrações de D sejam efetivas somente em D'