Introdução à Programação



Documentos relacionados
Capítulo 2: Introdução à Linguagem C

Tipos de Dados Simples

INF 1005 Programação I

Introdução à Programação

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

Algoritmos e Programação _ Departamento de Informática

Sintaxe Básica de Java Parte 1

Componentes da linguagem C++

ESTRUTURA CONDICIONAL

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

Programação: Tipos, Variáveis e Expressões

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Estrutura de Dados Básica

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

JSP - ORIENTADO A OBJETOS

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética

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

CAP. I ERROS EM CÁLCULO NUMÉRICO

Slides_Java_1 !"$ % & $ ' ' Output: Run java. Compile javac. Name of program. Must be the same as name of file. Java source code.

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00

Programação Básica em Arduino Aula 2

Resolução de problemas e desenvolvimento de algoritmos

Noções sobre Objetos e Classes

Conceitos de Linguagens de Programação

Expressões. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

e à Linguagem de Programação Python

Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Projeto e Desenvolvimento de Algoritmos

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

Programação. Folha Prática 3. Lab. 3. Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved.

Conceitos Básicos de C

Algoritmos e Programação de Computadores

Programas simples em C

Linguagem de Programação I. Orientação a Objetos em Java

Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos.

AULA Uma linguagem de programação orientada a objetos

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

Algoritmos e Programação

Programação de Computadores

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

Programação de Computadores - I. Profª Beatriz Profº Israel

Operaçõe õ s c om o Strings Intr oduç ão a o Ponte iros o e Funçõe õ s

10/02/2015. Introdução. Podemos classificar os tipos de dados a serem processados em dados e instruções Dados: Algoritmos e Lógica de Programação

Algoritmos Computacionais ( Programas )

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Roteiro 1: Dados, variáveis, operadores e precedência

Criar a classe Aula.java com o seguinte código: Compilar e Executar

INTRODUÇÃO À PROGRAMAÇÃO BCC 201 TURMAS 31, 32 E AULA TEÓRICA 4 PROF. MARCELO LUIZ SILVA (R E D)

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA.

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

Folha Prática 2. Lab. 2

Orientação a Objetos

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

CURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Introdução a linguagem C Estruturas de decisão

Linguagem de Programação Introdução a Linguagem Java

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

Organização de programas em Java. Vanessa Braganholo

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01

Curso de C para Engenharias

Introdução à Lógica de Programação

ALGORITMOS MEMÓRIA, VARIÁVEIS E CONSTANTES, OPERADORES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos TUDO É UM OBJECTO TUDO É UM OBJECTO ÍNDICE.

Javascript 101. Parte 2

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

O que é o JavaScript?

Engenharia de Software

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Programação de Computadores I

2 Orientação a objetos na prática

Desenvolvimento OO com Java Orientação a objetos básica

Aula 2 Variáveis. Precisamos armazenar os tipos de dados da aula anterior (inteiros, reais, literais e lógicos) em memória. Como fazer?

3 Sistemas de Numeração:

Representação de Dados

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

Programação em C++: Introdução

Computação II Orientação a Objetos

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Aula 3 - Sistemas de Numeração

3. Tipos de Dados, Constantes e Variáveis.

Organização de programas em Python. Vanessa Braganholo

Quadro de consulta (solicitação do mestre)

Paradigmas de Programação

A Linguagem Java. Alberto Costa Neto DComp - UFS

Unidade IV: Ponteiros, Referências e Arrays

Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução. (procedimentos e funções)

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Transcrição:

Aula Teórica 1b: variáveis e tipo de dados em C Departamento de Informática, UBI

Variáveis: conceito e pratica Variáveis e linguagens de programação A memoria A majoria dos linguagens de programação são baseados na mesma técnica: a manipulação dos valores conteúdos em uma variável Em programação, uma variável é um nome atribuído a um espaço da memoria (central) do computador E importante compreender que não é o programador que escolha o espaço, seja o endereço na memoria O programador só declara que precisa de um espaço escolhendo um nome qualquer Mais atenção: o nome escolhido e importante para o(s) programador(es)!

Variáveis: conceito e pratica Variáveis e linguagens de programação Exemplos de escolha errada do nome de uma variável A caso: fnskdlfn Ninguém compreende Só para mim: fofinha O que acontece se quero a ajuda de um outro programador? Críptica: ex-nop-b1-ife Esta é uma pratica usual para ganhar tempo escrevendo o programa, mais no nal precisa de algumas regras para concordar sobre o signicado Ambígua: comprimento Há dois programadores de um sistema de gestão de docas: um acredita que o comprimento de um barco é em pés, o outro que é em metros! Solução: declarar comprim-pes (assim é em náutica)

Variáveis: conceito e pratica Variáveis e linguagens de programação Variáveis versus constantes O termine variável sugere que este espaço da memoria deveria ser destinado a registrar uma mutação de valores durante a computação Exemplo: variável saldo para gravar o conteúdo efectivo em euro do vosso conto bancário Inciso: sabiam que não e possível depositar uma moeda diferente no vosso (mesmo) conto? Que sejam as razoes, se isto fosse possível seria categórico resolver as ambiguidades da variável saldo. Ideias? Mais os programadores precisam também de espaço para gravar informação que não muda Exemplos: local-nascimento, pi para gravar o numero 3.14159, ensino-primario para gravar sim o não - esta é uma constante se o programa só considera adultos

Variáveis: conceito e pratica Variáveis e linguagens de programação Variáveis versus constantes E uma boa pratica não declarar como variável um endereço que não deve mudar de valores durante a computação E porque? Porque em programação faz sentido seguir uma lógica. Isso é de bastante ajuda quando o programa tem um comportamento inesperado Exemplo de erro: declarar uma variável root para gravar root, o nome do administrador de sistema Infelizmente, um erro de programação pode mudar o conteúdo da root e comprometer o sistema. Quando acontece, e difícil descobrir as razoes de estes erros Solução: declarar root como uma constante

Tipos: o que são? Para que servem Tipos de dados de uma variável Diferencias na informação Em informática, e noção comum que a informação - pode ser em forma de cheiros - tem formatos diferentes Exemplo: isto e o resultado de abrir a imagem conteúda no cheiro arduino.png com o editor de texto

Tipos: o que são? Para que servem Tipos de dados de uma variável Números e strings O tipo de uma variável fala de isso, e de muito mais No caso mais intuitivo, o tipo permite de distinguir os números das strings. A declaração: string nome-utente signica que a variável nome-utente contem uma string A declaração: int idade signica que a variável idade contem um numero inteiro Intuitivamente, isto signica que não posso trocar os valores das variaveis entre ilhes porque são de natura diferente O tipos servem para impedir erros de esta natura nos programas

Tipos: o que são? Para que servem Inciso: funções e operações Um esclarecimento (to be on the safe side) Em matemática, uma função f é denotada na seguinte maneira: f : X Y X é o domínio, Y e o contradomínio Quando f é total cada elemento de X e associado a um elemento de Y, denotado: f (x) = y x e o argumento, y e o valor da função no x Exemplo: square: R R + Uma função e uma operação quando X = Y : f : X X Exemplo: next: N N Na teoria dos tipos, são especialmente as operações que interessam

Tipos: o que são? Para que servem Tipos de dados de uma variável A abstracção de tipo O tipo de uma variável indica uma colecção de operações que pode ser efectuadas sobre o conteúdo da variável.indica também as limitações dos valores que podem ser gravados Sao estas operações que descrevem a semântica dos valores de um dado tipo Exemplo: os axiomas de Peano que denem os números naturais podem ser derivados a partir da função sucessor (cf. von Neumann) As limitações também são importantes No ano 1996 o foguete Ariane 5, lançado no espaço para a primeira vez, explodiu depois 40. Foi depois descoberto um ($500-million) erro gerado da o tentativo de por em uma variável integer de 16 bit um valor mais grande

Tipos: o que são? Para que servem C: uma linguagem de programação tipicada Papel dos tipos Um tipo representa um conjunto nito de valores.tem associado: um nome (palavra reservada do C), um conjunto de literais, que denotam as constantes do conjunto que representa, um conjunto de operações, que recebendo argumentos do tipo devolvem resultado desse tipo. Exemplo: int n; E possível utilizar a função abs com argumento n para calcular o valor absoluto de n O C tem um conjunto de tipos de dados disponíveis (ditos primitivos) e suporta a denição de tipos pelo programador.

Tipos numéricos Tipos primitivos do C Os tipos de dados primitivos são void designa a ausência de valor. Usa-se em funções sem parâmetros (domínio vazio) ou que não devolvem nada (contradomínio vazio). Inteiros, que compreendem 3 subtipos: int representa um conjunto de valores inteiros; um valor é codicado com pelo menos 16 bits (2 bytes), mas pode ter mais (32 ou mesmo 64 nas arquitecturas típicas de hoje); bool representa o conjunto dos valores lógicos true e false (internamente, 1 e 0); um valor é codicado com 1 byte. char representa um conjunto de caracteres; um valor é codicado com pelo menos 1 byte. Reais (float), que representa um conjunto de valores reais; um valor é codicado com pelo menos 4 bytes. Complexos (complex), que representa um conjunto de valores complexos; um valor é codicado com pelo menos 6 bytes.

Tipos inteiros Tipos de valores inteiros do C O tipo bool É o tipo dos valores lógicos, ou booleanos (Boole foi um lógico). Os literais true e false são representados pelos valores inteiros 1 e 0. As operações disponíveis são: lógicas (recebem booleanos e devolvem booleanos): negação! (NOT), disjunção (OR) ou conjunção && (AND) relacionais (recebem valores numéricos e devolvem booleanos): <, >, <=, >=, ==,! =

Tipos inteiros Tabela verdade A mais básica tabela para a álgebra de Boole e a seguinte: Para formulas mais complexas e bem devolver uma tabela ad-hoc para ser seguros que a formula descreve a condição intendida

Tipos inteiros Tabela verdade Tabela de Boole para a formula do código Regras para uma correcta compreensão de uma formula: 1 Fazer atenção e por parênteses para evitar ambiguidades a && (b c) e diferente da a && b c 2 Escrever a tabela para todos os casos a = 0, 1, b = 0, 1, c = 0, 1 (quantos são?) Talvez, a tabela permite de simplicar a formula Exemplo: considerem a formula: a && (b c) &&!(c a) Esta formula e equivalente a false Porque?

Tipos inteiros Tipos de valores inteiros do C Qualicadores Há dois tipos de qualicadores de tipos em C: de sinal (signed ou unsigned); e de comprimento (short, long ou long long). Cada tipo qualicado denota um conjunto de valores. Tipos char O tipo inteiro char contém, se o compilador usar 1 byte para codicar valores do tipo, 2 8 = 256 valores. Cada valor numérico corresponde a um caracter, de acordo com uma tabela (por exemplo, a ASCII). Pode ter associado um qualicador de sinal; por defeito, char é unsigned e denota o conjunto {0,..., 255}; signed char é o conjunto { 128,..., 127}. Exemplos de literais caracteres: '\n', '!', 'A', 'Z', 'a', 'z', '_'

Tipos inteiros Tipos de valores inteiros do C Tipos int O tipo de dados inteiro int pode ter associados os dois tipos de qualicadores. Há portanto 6 tipos (2x3) int: signed ou unsigned short int; signed ou unsigned long int; signed ou unsigned long long int. Por defeito, int é signed (sem qualicador de comprimento). O tipo dos naturais é unsigned int

Tipos inteiros Tipos de valores inteiros do C Tipos int: alguns conjuntos denotados Assumindo 2 bytes para um short int, tem-se: short (signed short int): { 32768,..., 32767} int (signed int): { 2147483648,..., 2147483647} long long int: { 9223372036854775808,..., 9223372036854775807} Operações (aritméticas): adição +, subtracção -, multiplicação *, divisão (inteira) /, resto da divisão %. Os conjuntos de valores são percorridos circularmente: se uma operação dá um valor que extravaza os limites do conjunto, o resultado está no extremo oposto, na posição correspondente aos valores em que se ultrapassou o limite. Exemplo: no tipo short tem-se que 32768 2 = 32766 e 32766 + 2 = 32768

Tipos inteiros Tipos de valores reais do C Tipos float e double Os tipos de dados reais admitem um uso limitado dos qualicadores. Há 3 tipos reais: float, double ou long double. Um valor do tipo float é representado com no mínimo 4 bytes e 6 dígitos de precisão. Um valor do tipo double é representado com no mínimo 8 bytes e 16 dígitos de precisão. Um valor do tipo long double é representado com no mínimo 10 bytes e 20 dígitos de precisão. Exemplos de literais: 3.14159, 12.3e56, -1e-2, 12.0, etc. Operações: aritméticas (adição, subtracção, multiplicação e divisão), trigonométricas, logaritmicas, etc.

A motivação do utilizo dos tipos Redo from start: a que serve isso? A ajuda na prevenção dos erros A impedir erros de programação causados da uma confusão na tipologia dos dados Exemplo básico: void x(); O tentativo de efectuar a operação x()+1 da erro! O que signica dar erro? Signica que um programa que contem esta operação nao compila. A consequência é que não e possível executar esta operação no sistema, porque é errada e pode ser perigosa para todo o sistema Mais notam que estes erros, ainda os mais básicos, acontecem na pratica da programação!

A motivação do utilizo dos tipos Tipo void e erros stackoverflow.org I'm having trouble compiling some C code. When I compile, I get this error: player.c: In function login: player.c:54:17: error: void value not ignored as it ought to be This is the code of the error (segue o codigo). Any way to bypass this kind of error? (Answer): sp-err = sp-session-login(sess, username, password, remember-me); I guess sp-session-login is returning void