Fundamentos de Programação

Documentos relacionados
MC-102 Aula 19 Registros

Estruturas II UFOP 1/1

Registros. Técnicas de Programação. Rafael Silva Guimarães

Estruturas (registros)

Aula 1 Tipo Abstrato de Dados

Técnicas de Programação I

Introdução à Ciência da Computação. Registros em C. Sumário. Registros. Agradecimentos. Parte dos slides a seguir são adaptações dos originais:

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

INF 1620 P1-10/04/02 Questão 1 Nome:

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Laboratório 11 Estruturas. Departamento de Sistemas e Informática. Disciplina de Introdução à Programação Ano Lectivo 2006/2007

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza

Module Introduction. Programação. Cap. 10 Estruturas (Structs)

Computação II Orientação a Objetos

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

INF 1005 Programação I

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

Tipo Abstrato de Dados

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C

Introdução a Computação

O que é um algoritmo? O que é um programa? Algoritmos. Programas. Aula 1 Tipo Abstrato de Dados

INF 1007 Programação II

Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 12 Estruturas

Neste artigo estudaremos os conceitos relacionados às matrizes unidimensionais (vetores) e multidimensionais.

Programação de Computadores I Registros na Linguagem C PROFESSORA CINTIA CAETANO

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

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

Listas (Parte 2) Túlio Toffolo BCC202 Aula 10 Algoritmos e Estruturas de Dados I

struct LISTA item quant

Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados

Programação 1. Rafael Vargas Mesquita. ftp://ftp.ci.ifes.edu.br/informatica/rafael/

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2005/ Valores

Linguagens de Programação I

LINGUAGEM C Estrutura / Funções

1ª versão. #include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000

Trabalho 3: Agenda de Tarefas

Componentes da linguagem C++

Tipos de Dados Simples

Configuração do KDevelop

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

17 - Funções e Procedimentos em C Programação Modular

Exercício 1. Tabela 1: Cadastro de usuários, senhas e privilégios (exemplo). Login Senha Privilégio Armamento

Introdução a POO. Introdução a Linguagem C++ e POO

Plano de Aula. if(condição) { bloco de comandos; } else { bloco de comandos2; }

USP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Prof. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa

Curso de C para Engenharias

cast poderia ser usado também para transformar um real (float) em inteiro. A sintaxe C (float)i pode ser substituída em C++ por float(i).

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

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

MC-102 Algoritmos e Programação de Computadores IC-UNICAMP. Aula 21 - Registros. Por: Luís Augusto Angelotti Meira (Sala IC-71) 1S2005

Introdução à Programação

Esta apresentação ensinará os conceitos de Orientação a Objetos com C++, do mais básico para o mais avançado. É suposto que o aluno já tenha

Computação I (MAB120) DCC/UFRJ

9. Estruturas em C Registros

LINGUAGEM C. Estrutura básica de um programa

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

Arquivos. Estruturas de Dados II Vanessa Braganholo

MC-102 Aula 17 Strings e Matrizes

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

Variáveis e Comandos de Atribuição

Curso de C: uma breve introdução

Programação de Computadores II

Estruturas (Registros)

Estruturas de entrada e saída

5 Apresentando a linguagem C

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO

Estrutura de Dados. Struct (Registro) Lais Farias Alves

Curso de C. Procedimentos e Funções. 6/4/200901/04/09 09:42 Copyright@Arnaldo V Moura, Daniel F Ferber 1

Aula 26: Arquivos de texto

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

INF 1620 P1-13/09/02 Questão 1 Nome:

Estruturas de dados compostas

Algoritmos e Programação. Curso de Engenharia de Produção Prof. Ms. Rogério Cardoso rogerio.cardoso@aedu.com professor@rogeriocardoso.com.

15 a Aula Subprogramação /Subalgoritmos Função e Procedimento

Introdução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores

Resumo da Introdução de Prática de Programação com C. A Linguagem C

Programação científica C++

Implementando uma Classe e Criando Objetos a partir dela

A regra de acesso aos dados de uma fila é a seguinte: O primeiro elemento que entra (na fila) é o primeiro que sai (FIFO first in, first out).

system("pause"); //Envia comando para o sistema operacional solicitando parada de execução do programa } //limitador do corpo do programa

Aula 06 - Funções. O que é uma Função - Comando return - Protótipos de Funções - Tipos de Funções - Escopo de Variáveis - Passagem de parâmetros

13 Registros (Structs)

INF 1005 Programação I

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

ENGENHARIA DE PRODUÇÃO PROGRAMAÇÃO Algoritmos Conceitos Iniciais. Prof. Luiz Fernando Laguardia Campos FMS

Lista de Exercícios da 3ª Unidade. ( Ponteiros, Alocação dinâmica, Arquivos, Estruturas de Dados)

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01

Curso de Linguagem C

2ª Lista de Exercícios

Algoritmos e Estruturas de Dados I

Module Introduction. Programação. Cap. 4 Algoritmos e Programação Estruturada

Transcrição:

TeSP Redes e Sistemas Informáticos Luís Correia

Até agora aprendemos que podemos armazenar vários elementos, mas esses elementos têm que ser todos do mesmo tipo Exemplos: int v[20]; float matriz[5][10]; Como armazenar informação relativa p.e. a um funcionário? 2

No caso de pretendermos agrupar numa única variável, a seguinte informação, relativa a um funcionário: nome (do tipo string) morada (do tipo string) salário (do tipo float) número de filhos (do tipo int) Como fazer? 3

Na linguagem C é possível armazenar numa única variável tipos de dados diferentes Para isso utilizam-se ESTRUTURAS (structs) 4

Uma estrutura é uma coleção de uma ou mais variáveis agrupadas sob um mesmo nome Cada variável de uma estrutura é denominada por campo 5

A definição de estruturas deverá ser efetuada fora da função main, na zona de declarações struct <nome da estrutura> { <tipo1> <variável1>; <tipo2> <variável2>;... <tipon> <variáveln>; }; Nome da estrutura Campos 6

struct funcionario { char nome[80], morada[50]; float salario; int numfilhos; }; Nome da estrutura Campos 7

Após a definição da estrutura e para a podermos manipular é necessário declararmos variáveis do tipo da estrutura definida A declaração é efetuada da seguinte forma: struct <nome da estrutura> variavel1; Nota: a declaração é feita dentro da função main, ou de outras funções implementadas 8

Apenas declaração: struct funcionario f, gerente; struct aluno a; struct coordenadas ponto; variáveis Declaração e iniciação: struct aluno a= {1000, "Pedro Silva ", "Rua das Flores, 2400 Leiria", CET-IMRSI" }; 9

É efetuado utilizando o operador. (ponto) Sintaxe: Exemplo: variável_estrutura.campo struct funcionario f; f.numfilhos = 2; strcpy(f.nome, "Ana Sousa"); scanf("%f", &f.salario); printf("salario = %f\n", f.salario); 10

As estruturas compostas possuem campos cujo o tipo de dados são também estruturas Exemplo: struct data { int dia, mes, ano; }; struct aluno { int numero; char nome[80], morada[50], curso[40]; struct data datanasc; }; 11

Exemplo: struct aluno a; a.datanasc.dia = 10; a.datanasc.mes = 3; a.datanasc.ano = 1975; printf("%d %d %d", a.datanasc.dia, a.datanasc.mes, a.datanasc.ano); scanf("%d", &a.datanasc.dia); 12

Exemplo: struct aluno a= {1000, "Pedro Silva", "Rua das Flores, 2400 Leiria", CET IMRSI", {1, 3, 1980} }; Estrutura do tipo DATA 13

Exemplo: struct aluno a, b;... a = b; ATENÇÃO: As estruturas tem de ser do mesmo tipo! Também é possível a atribuição campo a campo: a.numero = b.numero; strcpy(a.nome, b.nome); 14

A linguagem C permite definir novos nomes para um dado tipo Sintaxe: typedef <tipo> <novo_nome_tipo>; Nota1: Tenha em atenção que a utilização do operador typedef não efetua a criação de um novo tipo, mas apenas, a definição de mais um nome que identifica esse tipo Nota2: A definição de novos nomes para um determinado tipo de dados deve ser efetuada fora das funções 15

Exemplos Definição do nome: typedef int t_idade; Declaração de variáveis: t_idade x, y, z; Definição do nome: typedef float t_vector[100]; Declaração de variáveis: t_vector v, v1; 16

Definição da estrutura: typedef struct { <tipo1> <variavel1>;... <tipon> <variaveln>; }t_estrutura; Declaração de variáveis: t_estrutura x, y; Nota: A utilização do typedef é particularmente conveniente na definição de estruturas, pois evita a necessidade de escrever struct nomedaestrutura sempre que a estrutura seja referenciada. 17

Exemplo 1: typedef struct{ char nome[80], morada[50]; float salario; int numfilhos; } t_funcionario; Declaração de variáveis: t_funcionario f, gerente; tipo variável 18

Exemplo 2: typedef struct { int dia, mes, ano; }t_data; typedef struct { int numero; char nome[80], morada[50], curso[40]; t_data datanasc; }t_aluno; 19

a) Declare a estrutura T_RELOGIO que permita armazenar a informação relativa às horas, aos minutos e aos segundos. b) Elabore as seguintes funções: inicia_relogio que efetua a leitura, a partir do teclado, das horas, dos minutos e dos segundos. mostra_relogio que mostra no écran a informação relativa às horas, minutos e segundos. 20

#include <stdio.h> #include <stdlib.h> typedef struct { int horas; int minutos; int segundos; }T_RELOGIO; int main(int argc, char *argv[]) { T_RELOGIO relogio; relogio = inicia_relogio(); mostra_relogio(relogio); getch(); return 0; } void mostra_relogio(t_relogio relogio); T_RELOGIO inicia_relogio(); void mostra_relogio(t_relogio relogio) { } printf("a hora inserida foi: %dh%dm%ds", relogio.horas, relogio.minutos, relogio.segundos); 21

T_RELOGIO inicia_relogio() { T_RELOGIO rel; printf("insira as horas:\n"); scanf("%d", &rel.horas); printf("insira os minutos:\n"); scanf("%d", &rel.minutos); printf("insira os segundos:\n"); scanf("%d", &rel.segundos); } return rel; 22

t_aluno a; Variável a do tipo t_aluno A variável a permite armazenar a informação relativa a um aluno... E se pretendermos armazenar a informação relativa a 100 alunos?... 23

Declaramos 100 variáveis do tipo t_aluno? OU Declaramos um vetor com capacidade para armazenar a informação relativa aos 100 alunos? 24

t_aluno v[100]; variável tipo dos elementos do vector nº máximo de elementos 0 1 2 3... 97 98 99... v[0] v[1] V[2] v[3]... V[97] V[98] V[99] 25

Sintaxe: nomedovector[posição do elemento].campo Exemplos: v[3].numero = 1000; strcpy(v[3].nome, "Rui Sousa"); strcpy(v[3].morada, "Leiria"); strcpy(v[3].curso, "Eng. Inf"); v[3].datanasc.dia = 5; v[3].datanasc.mes = 2; v[3].datanasc.ano = 1974; 26

Exemplos: printf("%d %s %s %s %d %d %d", v[3].numero, v[3].nome, v[3].morada, v[3].curso, v[3].datanasc.dia, v[3].datanasc.mes, v[3].datanasc.ano); scanf("%d", &v[3].numero); gets(v[3].nome); scanf ("%d", &v[3].datanasc.dia); 27

t_aluno a;... v[3] = a; A variável v tem de ser do tipo t_aluno 28

Conteúdo retirado de: Slides Linguagem C, Micaela Esteves, DEI-ESTG Slides Programação I, Vítor Távora, DEI-ESTG Slides, Programação - Eng. Automóvel, DEI ESTG Damas, Luís Linguagem C, Editora FCA, 1999 29