• Nenhum resultado encontrado

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

N/A
N/A
Protected

Academic year: 2021

Share "Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre"

Copied!
34
0
0

Texto

(1)

Programação

Engenharia Informática (11543) – 1º ano, 1º semestre

Tecnologias e Sistemas de Informação (6619) – 1º ano, 1º semestre

(2)

Sumário

…:

–  Linguagem, alfabeto e gramática –  Tabela ASCII

–  Componentes de uma linguagem: léxico, sintaxe e semântica –  Entidades: nomes/identificadores, operadores e literais

–  Termos, expressões e tipos de expressões –  Instruções e tipos de instruções

–  Instrução de bloco –  Instrução de atribuição

–  Variáveis e declarações de variáveis

–  Constantes e declarações de constantes

–  Tipos de dados básicos: char, int, float e double –  Modelos de programação

(3)

Linguagens de programação

–  Programas são escritos numa linguagem de programação. –  Linguagem de programação

§  Alfabeto

§  Gramática

–  Alfabetos:

§  {0,1} : linguagem máquina (ling. baixo-nível)

§  código ASCII : Pascal, C, Java, etc. (linguagens de alto-nível)

§  A .. Z : Português, Inglês, Espanhol, etc.

(4)

Tabela ASCII de símbolos

(5)

Tabela ASCII de símbolos: códigos adicionais

(6)

Alfabeto (em C)

-  O conjunto básico de caracteres gráficos da linguagem C é o seguinte:

Forma Membros letra A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z dígito 0 1 2 3 4 5 6 7 8 9 underscore _ Pontuação ! " # % & ' ( ) * + , - . / : ; < = > ? [ \ ] ^ { | } ~ http://www-ccs.ucsd.edu/c/charset.html

(7)

Componentes de uma linguagem

-  Léxico: conjunto de palavras duma linguagem, i.e. o dicionário.

-  Sintaxe: conjunto de regras de construção das frases dum texto, i.e. a gramática. Estas frases são designadas por instruções e o texto é designado por programa.

-  Semântica: é o significado de cada instrução dum programa ou mesmo dum do programa completo.

(8)
(9)

Palavras reservadas

-  A linguagem C tem um conjunto de palavras reservadas, entre as quais:

auto double int struct

break else long switch

case enum register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof volatile

do if static while

-  Não podem ser usadas a não ser para aqueles fins pré-definidos; por exemplo, não podem

ser usadas como nomes de variáveis.

(10)

Nomes de funções de bibliotecas (libm)

-  A biblioteca matemática libm.a tem um conjunto de funções, entre as quais:

cos acos floor sin asin

tan atan tanh ceil log

pow log10 fabs sqrt sinh

-  Embora não sejam palavras reservadas, não devemos usá-las para outros fins, pois isso pode gerar conflitos de nomes.

-  A tentativa de utilização para outros fins pode ter como consequência uma série de erros de compilação.

(11)

Classificação de nomes/identificadores

-  Há 3 classes de nomes ou identificadores:

Não podem ser redefinidos

Palavras reservadas

Identificadores estandardizados

(p.ex., nomes de funções matemáticas)

Identificadores definidos pelo utilizador

(p.ex., nomes de variáveis) Podem ser redefinidos, mas

(12)

Entidades e expressões

-  Entidades:

§  identificadores ou nomes (de variáveis, constantes e funções)

§  operadores (adição, subtracção, atribuição, …)

§  literais

-  Expressões:

§  É uma construção sintáctica que tem um valor.

§  É uma combinação de entidades que representa o cálculo dum valor.

-  Tipos de expressões:

§  expressão numérica (resultado numérico)

§  expressão lógica (resultado lógico)

(13)
(14)

Nomes/identificadores

-  As regras de formação de nomes/identificadores são as seguintes: §  Diferenciação gráfica (maiúsculas e minúsculas)

§  Tamanho variável (ANSI C limitado a 31 caracteres)

§  Validade (carácter inicial é : a..z, A..Z, _ ) •  nomes válidos: j, j5, _5A

•  nomes inválidos: 5j, j5%, const

(15)

Operadores

-  Escrita de dados em memória (operador de ATRIBUIÇÃO)

=

-  Cálculo de inteiros e/ou reais (operadores ARITMÉTICOS)

+, -, *, /

-  Cálculo de valores lógicos (falso/verdadeiro) (operadores LÓGICOS)

&&, II, !

-  Cálculo de valores lógicos (falso/verdadeiro) (operadores RELACIONAIS)

<, <=, >, >=, !=, ==

-  Incrementa valor de variável inteira de 1 unidade (operador de INCREMENTAÇÃO)

++

-  Decrementa valor de variável inteira de 1 unidade (operador de DECREMENTAÇÃO)

(16)

--Literais

Definição:

–  Uma entidade sem nome que representa um valor constante.

Exemplos:

–  “XYZ123” é um literal string

–  ‘g’ é um literal carácter

–  1234 é um literal inteiro

–  3.78 é um literal real

(17)

Literais inteiros

-  O valor da constante depende da sua forma inicial:

§  0x ou 0X indica um inteiro hexadecimal (base 16);

§  0 indica um inteiro octal (base 8);

§  um dígito não-nulo indica um inteiro decimal (base 10).

-  No final do literal, como opção, escreve-se o sufixo l ou L para indicar que é do tipo long, ou

o sufixo u ou U para indicar que é do tipo unsigned

Diagrama de sintaxe:

(18)

Termos

-  Um termo é uma das seguintes entidades:

§  um nome ( de variável numérica ou função que devolve um valor numérico)

§  um literal

§  o operador sizeof

§  uma expressão-parentisada

Diagrama de sintaxe:

(19)

Expressões

Diagrama de sintaxe:

Exemplos:

–  5 (literal inteiro) –  num (nome de variável)

–  5+num (adição de literal e valor de variável)

–  square(5) (chamada a função com argumento literal)

–  square(5)/2 (divisão do valor duma função por dois)

–  a && b || c (devolve um valor lógico)

–  getchar() (chamada a função que devolve um valor char)

–  !a (nega valor lógico de variável)

–  num++ (incrementa valor de variável)

Definição: Uma expressão é uma sequência de um ou mais termos separados por operadores infixo.

Cada termo é precedido por zero ou mais operadores prefixos. Cada termo é seguido por zero ou mais operadores pósfixos.

(20)

Instruções

Diagrama de sintaxe:

Exemplos:

–  printf("hello\n"); // chamada a função

–  y = m * x + b; // armazena valor

–  ++count; // altera valor armazenado

(21)

Sumário até agora:

-  PROGRAMA = sequência de INSTRUÇÕES

-  INSTRUÇÃO = EXPRESSÃO seguida de ponto e vírgula

-  EXPRESSÃO = sequência de TERMOS separados por operadores infixo

-  TERMO = é uma das seguintes entidades:

§  um nome ( de variável numérica ou função que devolve um valor numérico)

§  um literal

§  o operador sizeof

(22)

Tipos de instruções

-  Uma instrução é uma das seguintes entidades:

§  uma instrução-bloco §  uma instrução-de-atribuição §  uma instrução-if §  uma instrução-while §  uma instrução-for §  uma instrução-switch §  uma instrução-break §  uma instrução-continue §  uma instrução-return

A estudar em capítulos posteriores!

(23)

Instrução de bloco

Diagrama de sintaxe:

Exemplo:

Definição: É uma sequência de (declarações e) instruções entre { e }.

#include <stdio.h> int main() { float y; y=5.4;

printf(“O valor de y=%f\n”,y);

}

(24)

Instrução de atribuição

Diagrama de sintaxe:

Exemplo:

Definição: É uma instrução que atribui um valor a uma variável em memória.

name = expression ; #include <stdio.h> int main() { int x; float y;

printf(“Escreva um valor inteiro: ”); scanf(“%d”,&x);

y=x+5.4;

printf(“O valor de y=%f\n”,y);

}

(25)

Variável

-  Têm nome e valor.

-  À semelhança das variáveis em matemática, uma variável não tem valor constante.

-  Pode mudar de valor através duma instrução de atribuição. Definição: É um local de memória onde se guarda um dado específico.

#include <stdio.h> int main() { int x; x=12; ... }

x

valor de

x

00000000

00001100

memória

(26)

Declaração de variáveis

Diagrama de sintaxe: Exemplo: #include <stdio.h> int main() { int x; x=12; ... } type name ; declaração-de-variável

(27)

Declaração de variáveis

Bytes em memória Formato de E/S Inteiros char 1 byte %c int 2 bytes %d ou %i Reais float 4 bytes %f double 8 bytes %f 00000000 00000000 00000000 00001100

(28)

Constante

-  Também tem nome e valor.

-  À semelhança das constantes em matemática, uma constante tem valor fixo e imutável. Definição: É também um local de memória onde se guarda um dado específico.

#include <stdio.h> int main() { const int i=10; ... }

i

valor de

i

00000000

00001010

memória

(29)

Declaração de constantes

Diagrama de sintaxe: Exemplo: #include <stdio.h> int main() { const int i=10; ... } declaração-de-constante type name = const literal ;

(30)
(31)

Modelos de programação

Programação imperativa

–  C, Pascal, Fortran, …

Programação funcional

–  Haskel, Lisp, Scheme, …

Programação em lógica

–  Prolog, …

Programação orientada por objectos

–  C++, Java, Smaltalk, Objective-C, C#, Logtalk, …

Programação baseada em eventos

- Não há linguagens específicas … é mais uma forma de programar aplicações.

(32)

Programação imperativa

Dados

–  Simples (int, float, char, double) –  Compostos (array, struct, file)

Funções/operadores printf

y

x

+

scanf

=

printf

5.4

#include <stdio.h> int main() { int x; float y;

printf(“Escreva um valor inteiro: ”); scanf(“%d”,&x);

y=x+5.4;

printf(“O valor de y=%f\n”,y); }

(33)

Princípio fundamental da programação imperativa

-  A reserva de memória para dados é feita através da declaração de variáveis. Exemplo:

int j;

-  O porquê do modelo centralizado de dados? O conjunto de todas as variáveis

declaradas num programa não é mais do que o repositório central de dados que é manipulado pelas funções e operações usadas dentro do programa.

-  Princípio fundamental da programação imperativa:

-  Nenhuma variável, constante ou função pode ser utilizada num programa sem ter sido previamente declarada.

(34)

Conclusão

…:

–  Linguagem, alfabeto e gramática –  Tabela ASCII

–  Componentes de uma linguagem: léxico, sintaxe e semântica –  Entidades: nomes/identificadores, operadores e literais

–  Termos, expressões e tipos de expressões –  Instruções e tipos de instruções

–  Instrução de bloco –  Instrução de atribuição

–  Variáveis e declarações de variáveis

–  Constantes e declarações de constantes

–  Tipos de dados básicos: char, int, float e double –  Modelos de programação

Referências

Documentos relacionados

O novo Parque Náutico que nascerá no Estádio de Remo após a Olimpíada deverá atender às necessidades de expansão do remo olímpico e do remo popular,

Constam desta lei os princípios gerais sobre a formação de educadores e professores (artigo 33.º) e o reconhecimento a todos os educadores, professores e outros

PREÇOS À SAÍDA DA FÁBRICA - Preços Médios Mensais EUR / 100 kg VARIAÇÃO PERCENTUAL Manteiga n.d... ÍNDICE DE PREÇOS DE PRODUTOS AGRÍCOLAS NO PRODUTOR

1 Tachuris rubrigastra (Vieillot, 1817) papa-piri Aves Passeriformes Tyrannidae. VU A1cd; B1ab(i,ii,iii,iv)+2ab(i,ii,iii,iv);

Este artigo objetivou descrever o conhecimento e a prática de auxiliares de enfermagem (AE), quanto ao manuseio da geladeira especial para armazenamento de vacinas, nas Unidades

moderada durante 50 minutos ou mais diariamente, que sejam apropriadas ao estágio do desenvolvimento, variadas e que propiciem prazer. b) Em crianças e adolescentes

Vereador Luis Miguel Calha de 23/05/2011, (no uso da competência delegada pela Sr.ª Presidente, através do Despacho n.º 22/2009 de 23 de novembro, Edital 168/DAF-DAG/2009, de 27

Pressão máxima de exercício incluindo golpe de ariete no lado da aspiração: – Bombas com flanges ovais 16 bar. – Bombas com flanges redondas