Linguagem C. Novos tipos de dados
|
|
|
- Benedicto de Almada Canário
- 10 Há anos
- Visualizações:
Transcrição
1 Linguagem C Novos tipos de dados
2 Novos tipos de dados Você já se deparou com um problema de programação no qual deseje agrupar sob um único nome um conjunto de tipos de dados não similares? Utilizaria matrizes? O problema de agrupar dados desiguais em C é resolvido pelo uso de estruturas Estruturas são tipos de variáveis que agrupam dados geralmente desiguais; ao passo que matrizes agrupam dados similares Os itens de dados da estrutura são chamados de membros, e os da matriz, de elementos Em algumas linguagens de programação, estruturas são chamadas de registros
3 Novos tipos de dados O exemplo tradicional de uma estrutura é o registro de uma folha de pagamento Um funcionário é descrito por um conjunto de atributos, tais como nome (caractere), número de seu departamento (inteiro), salário (real) Possivelmente, haverá outros funcionários, e você vai querer que seu programa os guarde, formando uma matriz de estruturas Nesta aula, exploraremos a criação de novos tipos de dados por meio de estruturas Você já conhece os cinco tipos de dados simples que estão pré-definidos no compilador: char, int, float, double e void Com base nesses tipos, podemos definir tipos complexos, que possibilitem agrupar um conjunto de variáveis de tipos diferentes sob um único nome
4 Criando novos tipos de dados com struct Por meio da palavra-chave struct definimos um novo tipo de dado Definir um novo tipo de dado significa informar ao compilador nome tamanho em bytes forma como deve ser armazenado e recuperado na memória Após ter sido definido, o novo tipo existe e pode ser utilizado para criar variáveis de modo similar a qualquer tipo simples O exemplo a seguir cria um tipo de dado que pode armazenar as informações de um aluno da escola
5 Exemplo /* TipoAluno.C */ /* Cria uma estrutura para armazenar dados de um aluno */ #include <stdio.h> #include <stdlib.h> struct Aluno /*Inicio da definição da estrutura */ int nmat; /* Número da matrícula */ float nota[3]; /* Notas */ float media; /* Média */ }; /* Fim da definição */ int main() struct Aluno Jose; /* Declara uma variável do tipo struct Aluno */ Jose.nmat = 456; Jose.nota[0]= 7.5; Jose.nota[1]= 5.2; Jose.nota[2]= 8.4; Jose.media = (Jose.nota[0] + Jose.nota[1] + Jose.nota[2])/3.0; printf("matricula: %d\n", Jose.nmat); printf("media : %.2f\n", Jose.media); } system("pause"); return 0;
6 Definindo a estrutura A definição da estrutura informa como ela é organizada e quais são os seus membros Palavra-chave Etiqueta Chaves struct Aluno int nmat; float nota[3]; float media; }; Ponto-e-vírgula Membros A definição de uma estrutura não cria variável alguma, somente informa ao compilador as características de um novo tipo de dado
7 Definindo a estrutura A palavra struct indica que um novo tipo de dado está sendo definido e a palavra Aluno será sua etiqueta O nome do nosso novo tipo de dados é struct Aluno No nosso exemplo, definimos o tipo struct Aluno antes de main( ) Permite um acesso global a todas as funções definidas no programa Poderíamos colocar essa definição dentro de uma função, restringindo o acesso às instruções do mesmo bloco e escritas abaixo dela Veja o exemplo modificado a seguir
8 Exemplo modificado /* TipoAluno1.C */ /* Cria uma estrutura para armazenar dados de um aluno */ #include <stdio.h> #include <stdlib.h> int main() struct Aluno /*Inicio da definição da estrutura */ int nmat; /* Número da matrícula */ float nota[3]; /* Notas */ float media; /* Média */ }; /* Fim da definição */ struct Aluno Jose; /* Declara uma variável do tipo struct Aluno */ Jose.nmat = 456; Jose.nota[0]= 7.5; Jose.nota[1]= 5.2; Jose.nota[2]= 8.4; Jose.media = (Jose.nota[0] + Jose.nota[1] + Jose.nota[2])/3.0; printf("matricula: %d\n", Jose.nmat); printf("media : %.2f\n", Jose.media); } system("pause"); return 0;
9 Novos nomes para os tipos existentes: typedef Declarações com typedef não produzem novos tipos de dados, apenas criam novos nomes (sinônimos) para os tipos existentes Sintaxe typedef tipo-existente sinônimo; Observe o fragmento de código abaixo typedef unsigned char BYTE; /* Cria o sinônimo BYTE */ typedef unsigned int uint; /* Cria o sinônimo uint */ int main() BYTE ch; /* Declara uma variável do tipo BYTE */ uint x; /* Declara uma variável do tipo uint */ unsigned char chmm; /* Os tipos originais podem ser usados */
10 Usando typedef com struct Com estruturas, podemos utilizar typedef de três formas struct Aluno int nmat; float nota[3]; float media; }; typedef struct Aluno Aluno; Aluno Jose; /* Declara uma variável do tipo Aluno */ Outro modo é criar um sinônimo na mesma instrução de definição da estrutura typedef struct Aluno int nmat; float nota[3]; float media; } Aluno; Aluno Jose; /* Declara uma variável do tipo Aluno */
11 Usando typedef com struct E podemos ainda não informar a etiqueta da estrutura typedef struct int nmat; float nota[3]; float media; } Aluno; Aluno Jose; /* Declara uma variável do tipo Aluno */ Observe a similaridade entre a declaração de variáveis de tipos simples e de variáveis de tipos definidos pelo usuário Aluno Jose; int val;
12 Acessando os membros da estrutura Uma vez criada a variável estrutura, seus membros podem ser acessados por meio do operador ponto A instrução Jose.nmat = 456; atribui o valor 456 ao membro nmat da variável Jose O operador ponto conecta o nome de uma variável estrutura a um membro dela. A linguagem C trata os membros de uma estrutura como quaisquer outras variáveis simples Por exemplo, Jose.nmat é o nome de uma variável do tipo int e pode ser utilizada em todo lugar em que se use variáveis desse tipo
13 Combinando declarações No exemplo anterior, definimos a estrutura e declaramos a variável em duas instruções distintas Essas duas instruções podem ser combinadas em uma struct Aluno /*Inicio da definição da estrutura */ int nmat; /* Número da matrícula */ float nota[3]; /* Notas */ float media; /* Média */ } Jose; /* Cria a variável Jose do tipo Aluno*/
14 Combinando declarações Podemos declarar quantas variáveis quisermos struct Aluno /*Inicio da definição da estrutura */ int nmat; /* Número da matrícula */ float nota[3]; /* Notas */ float media; /* Média */ } Jose, Ana, Joao; /* Cria a variáveis do tipo Aluno*/
15 Combinando declarações A etiqueta pode ser suprimida struct /*Inicio da definição da estrutura */ int nmat; /* Número da matrícula */ float nota[3]; /* Notas */ float media; /* Média */ } Jose, Ana, Joao; /* Cria a variáveis do tipo Aluno*/ Observe que a etiqueta, na definição da estrutura, pode ser suprima caso nenhuma outra variável venha a se declarada mais adiante Separadas por vírgulas, diversas variáveis podem ser declaradas de uma única vez A combinação da definição da estrutura com a declaração das variáveis torna a escrita mais compacta, entretanto, menos clara e menos flexível
16 Inicializando estruturas A inicialização de estruturas é semelhante à de uma matriz Uma variável do tipo estrutura só pode ser inicializada se criada em tempo de compilação assim, deve ser das classes extern ou static
17 Inicializando estruturas Veja um exemplo typedef struct int dia; char mes[10]; int ano; } Data; static Data natal = 25, dezembro, 2001}; static Data aniversario = 30, julho, 1995}; Se as variáveis inicializadas não forem declaradas como static, a maioria dos compiladores não apresentará erro algum A maioria dos compiladores criará as variáveis automaticamente As variáveis natal e aniversario são inicializadas na mesma instrução de suas declarações Os valores a serem atribuídos a seus membros devem ser colocados na ordem em que foram definidos na estrutura, separados por vírgulas e entre chaves
18 Definindo e inicializando na mesma instrução No exemplo anterior, definimos a estrutura e declaramos a variável inicializada em duas instruções Quando não utilizamos a palavra typedef, essas duas instruções podem ser combinadas em uma struct Data int dia; char mes[10]; int ano; } natal = 25, dezembro, 2001}, aniversario = 30, julho, 1995};
19 Atribuições entre estruturas Uma variável estrutura pode ser atribuída a outra do mesmo tipo por meio de uma atribuição simples static Data aniversario = 30, julho, 2008}; Data Andre; Andre = aniversário; Certamente, constatamos que essa é uma grande capacidade quando pensamos a respeito dela Todos os valores dos membros da estrutura estão realmente sendo atribuídos de uma única vez aos correspondentes da outra Uma expressão de atribuição tão simples não poderia ser usada para matrizes, que devem ser atribuídas elemento a elemento Note que a atribuição só é permitida entre estruturas do mesmo tipo Se for atribuída uma variável de um tipo a outra de outro tipo, o compilador acusará um erro
20 Operações entre estruturas Para exemplificar o modo de executar operações entre estruturas, vamos montar um tipo de dado que armazene o número de peças vendidas por uma loja num determinado dia o valor total da venda Em seguida, criaremos duas variáveis com os dados de dois dias e uma terceira variável para armazenar o total de vendas typedef struct int peças; float preço; } Venda; Venda A = 20, 110.0}, B = 3, 16.5}, Total;
21 Operações entre estruturas Você poderia adicionar os valores das variáveis A e B por meio de uma instrução simples Total = A + B; /* ERRADO */ Em linguagem C, operações simples como a soma não estão definidas para tipos criados com a palavra struct A soma deve ser efetuada membro a membro Total.pecas = A.pecas + B.pecas Total.preco = A.preco + B.preco
22 Estruturas aninhadas Exatamente como podemos ter matrizes em que cada elemento é outra matriz, podemos definir estruturas com membros que sejam outras estruturas /* StructNinho.C */ /* Mostra estruturas aninhadas */ #include <stdio.h> #include <stdlib.h> typedef struct int dia; char mes[10]; int ano; } Data; typedef struct int pecas; float preco; Data diavenda; } Venda; int main() static Venda A = 20, 110.0, 7,"Novembro",2001} }; printf("pecas: %d\n", A.pecas); printf("preco: %.2f\n", A.preco); printf("data : %d de %s de %d\n", A.diavenda.dia, A.diavenda.mes, A.diavenda.ano); } printf("tecle [ENTER] para finalizar..."); getchar(); return 0;
23 Estruturas aninhadas No exemplo, adicionamos um membro do tipo Data à estrutura Venda, e criamos a variável A do tipo Venda A variável A tem três membros, dos quais um é estrutura do tipo Data A.diavenda é o nome de uma variável do tipo Data e, para acessar seus membros, devemos aplicar o operador ponto outra vez Logicamente, esse processo não pára nesse nível; podemos ter uma estrutura dentro de outra quanta vezes desejarmos
24 Inicializando estruturas aninhadas A variável A foi inicializada na instrução static Venda A = 20, 110.0, 7,"Novembro",2001} }; Observe que o membro diavenda, por ser uma estrutura, é inicializado com seus membros entre chaves e separados por vírgulas
25 Passando estruturas para funções As estruturas podem ser passadas como argumentos de funções da mesma forma que variáveis simples O nome de uma estrutura em C não é um endereço Pode ser passada por valor
26 Funções que retornam uma estrutura A linguagem C permite que as funções retornem uma estrutura completa para outra função Vamos exemplificar uma função que recebe duas estruturas como argumento e retorna uma estrutura como a soma dos argumentos
27 Funções que retornam uma estrutura /* StructV.C */ /* (1) Mostra passagem de estruturas para funções por valor. (2) Mostra uma função que retorna uma estrutura */ #include <stdio.h> #include <stdlib.h> typedef struct Venda int pecas; float preco; } Venda; Venda TotalVendas( Venda C, Venda D);/* Protótipo */ int main() Venda A, B, Total; printf("venda A\n=======\n"); printf("insira o numero de pecas: "); scanf("%d", &A.pecas); printf("insira o preco: "); scanf("%f", &A.preco); printf("\nvenda B\n=======\n"); printf("insira o numero de pecas: "); scanf("%d", &B.pecas); printf("insira o preco: "); scanf("%f", &B.preco); Total = TotalVendas( A,B);/* Estruturas como argumento e retorno */ printf("\n\nvenda Total\n==========="); printf("\ntotal de pecas: %d", Total.pecas ); printf("\npreco total : %.2f\n", Total.preco ); } printf("\ntecle [ENTER] para finalizar..."); getchar(); getchar(); return 0; Venda TotalVendas(Venda C, Venda D) Venda T; T.pecas = C.pecas + D.pecas; T.preco = C.preco + D.preco; return T; }
28 Análise do exemplo structv.c O protótipo da função TotalVendas( ) e as instruções de seu corpo tratam as variáveis argumentos como se trata qualquer tipo simples A função cria as novas variáveis C e D para conter cópia dos valores das variáveis A e B de main( ), enviadas como argumento Assim seria feito com qualquer tipo de variável simples passada por valor As variáveis C e D não são as mesmas das de main( ) A função poderia alterá-las sem contudo modificar as originais
29 Matrizes de estruturas Uma lista de peças e preços é composta, majoritariamente, por mais de uma venda (produto) Cada venda é descrita por uma variável do tipo Venda Para tratar de várias vendas é perfeitamente correto pensar em uma matriz de estruturas O programa a seguir proporcionará uma interface simples com o usuário, constituída da escolha entre duas opções assinaladas pelas letras E e L Note que ele realizará o nosso objetivo de criar uma matriz de estruturas, em que cada elemento da matriz representa uma venda Se o usuário pressionar E, o programa permitirá a entrada das informações de uma venda Caso pressione L, o programa listará todas as vendas e imprimirá os totais Vamos ainda aumentar as informações, acrescentando a data de cada venda
30 Matrizes de estruturas Usaremos duas novas funções da biblioteca C atoi( ) e atof( ) atoi( ) recebe o endereço de uma variável char (string) como argumento e a converte em um número inteiro correspondente à cadeia recebida Por exemplo, se enviarmos 1234 ela retorna o número inteiro 1234 atof( ) faz executa a mesma tarefa, porém com variáveis do tipo float Analise o exemplo a seguir
31 /* MatrizStruct.C */ /* Mostra uma matriz de estruturas */ #include <stdio.h> /* para gets(), printf(), scanf() */ #include <stdlib.h> /* Para system(), atoi(), atof(), exit() */ #include <conio.h> /* Para getch() */ #define ESC 27 #define TRUE 1 typedef struct int dia; char mes[10]; int ano; } Data; typedef struct Data diavenda; int pecas; float preco; } Venda; void listavenda(void); /* Protótipo */ void novavenda(void); /* Protótipo */ Venda vendas[50]; /* Cria matriz de estruturas */ Venda Total=0,"",0},0,0.0}; /* Cria variável do tipo Venda */ int n=0; int main() char ch; while(true) printf("digite E para entrar uma venda\n"); printf(" L para listar as vendas\n"); printf(" ESC para terminar\n"); ch=getche(); printf("\n"); switch(ch) case 'E': novavenda(); break; case 'L': listavenda(); break; case ESC: /* ESC não pode ser declarado com const */ exit(0); default : printf("opcao invalida!!\n"); } } } system("pause"); return 0;
32 Cont. exemplo } system("pause"); return 0; } void novavenda() char temp[80]; printf("dia: "); gets(temp); vendas[n].diavenda.dia=atoi(temp); printf("mes: "); gets(vendas[n].diavenda.mes); printf("ano: "); gets(temp); vendas[n].diavenda.ano=atoi(temp); printf("pecas: ");gets(temp); vendas[n].pecas=atoi(temp); printf("preco: ");gets(temp); vendas[n].preco=atof(temp); Total.pecas += vendas[n].pecas; Total.preco += vendas[n++].preco; } void listavenda() int i; if(!n) printf("lista vazia.\n"); return; } } printf("\n\nrelatorio\n"); for (i=0; i<n; i++) printf("%2d de %10s de %4d", vendas[i].diavenda.dia, vendas[i].diavenda.mes, vendas[i].diavenda.ano); printf("%10d", vendas[i].pecas); printf("%20.2f\n", vendas[i].preco); } printf("\ntotal"); printf("%29d", Total.pecas); printf("%20.2f\n\n", Total.preco);
33 Declarando a matriz de estruturas O processo de declaração de uma matriz de estruturas é perfeitamente análogo ao de declaração de qualquer tipo de matriz A instrução Venda vendas[50]; declara vendas como sendo uma matriz de 50 elementos Cada elemento da matriz é uma estrutura do tipo Venda vendas[0] é a primeira estrutura do tipo Venda vendas[1] é a segunda estrutura do tipo Venda e assim por diante
34 Declarando a matriz de estruturas O nome vendas é o de uma matriz (portanto, um endereço), em que os elementos são estruturas Observe que, a partir dessa instrução, o compilador providencia espaço contínuo de memória para armazenar 50 estruturas do tipo Venda Para simplificar, declaramos a matriz externa Assim, todas as funções do programa poderão acessá-la
35 Acessando membros da matriz de estruturas Membros individuais de cada estrutura são acessados aplicando-se o operador ponto seguido do nome da variável, que, nesse caso, é um elemento da matriz vendas[n].preco A expressão acima refere-se ao membro preco da n-ésima estrutura da matriz O esquema global desse programa pode ser aplicado a uma grande variedade de situações, como o controle de um estoque Cada variável poderá conter dados sobre um item do estoque Número do material Preço Tipo Número de peças do estoque Etc.
36 Estruturas com campos bit Com a palavra struct podemos definir tipos de dados para manipulação de bits O conjunto de membros consiste nos bits de um char, short ou long Cada membro é formado por um ou mais bits do inteiro A estrutura nomeia os membros e determina seus tamanhos Um caractere é impresso na memória de vídeo da console, ocupando dois bytes O primeiro byte é para o seu código ASCII O segundo byte é para um atributo cor, piscante, reverso, etc. Como exemplo, vamos apresentar um tipo de dado que possa armazenar o caractere e seu atributo
37 Estruturas com campos bit typedef struct unsigned short CodAscii: 8; /* Bits 0 a 7 */ unsigned short CorFrente: 3; /* Bits 8 a 10 */ unsigned short Intenso: 1; /* Bits 11 */ unsigned short CorFundo: 3; /* Bits 12 a 14 */ unsigned short Piscante: 1; /* Bits 15 */ } Int16Bits; int main() Int16Bits A; A.CodAscii = 'A'; A.CorFrente = 3; /* Branco para a cor de frente */ A.Intenso = 1; /* Intensifica a cor de frente */ A.CorFundo = 0; /* Preto para a cor de fundo */ A.Piscante = 1; /* Escolhe atributo piscante */...
38 As funções atoi( ) e atof( ) A função atoi( ), com protótipo no arquivo stdlib.h, recebe o endereço de uma string como argumento e o converte para um valor inteiro Caso a string não contenha um número válido, ela retornará zero Espaços em branco iniciais são ignorados A função atof( ), com protótipo no arquivo stdlib.h, recebe o endereço de uma string como argumento e o converte a um valor double Caso a string não contenha um número válido, ela retornará zero Espaços em branco iniciais são ignorados
39 A função exit( ) A função exit( ), com protótipo no arquivo stdlib.h, permite o término imediato do programa e passa o controle ao sistema operacional A função exit( ) finaliza o programa. O seu argumento é um número inteiro que é retornado ao sistema operacional Ele pode ser acessado por meio do subcomando ERRORLEVEL de um programa.bat O arquivo.bat pode conter uma linha de comando como IF ERRORLEVEL 1 GOTO ERR1 o que provoca uma mudança de operação, dependendo do valor de retorno indicado pelo término do programa O zero costuma ser usado para indicar o término normal do programa
40 Usando typedef para tipo de funções O exemplo seguinte cria o tipo FuncType( ) para uma função que não retorna valor algum e recebe um float e um int como argumentos, nessa ordem Typedef void FuncType(float, int); Após essa instrução, a próxima declaração é válida E é equivalente à seguinte instrução FuncType MinhaFunc; Void MinhaFunc(float, int);
41 Tipos de dados enumerados: enum Os tipos definidos com enum, consistem num conjunto de constantes inteiras, em que cada uma delas é representada por um nome Estes são chamados de tipos enumerados Tipos enumerados são usados quando conhecemos o conjunto de valores que uma variável pode assumir A variável desse tipo é sempre int e, para cada um dos valores do conjunto, atribuímos um nome significativo A palavra enum enumera a lista de nomes automaticamente, dando-lhes números em sequência (0, 1, 2, etc.) A vantagem é que utilizamos esses nomes no lugar de números, o que retorna o programa mais claro
42 Tipos de dados enumerados: enum Vamos escrever um fragmento de programa que define o tipo enumerado e cria uma variável desse tipo para guardar o mês enum Mes Jan=1, Fev, Mar, Abr, Mai, Jun, Jul, Ago, Set, Out, Nov, Dez}; int main() enum Mes m1, m2, m3; /* Cria duas variáveis do tipo enum Mes */ m1 = Abr; /* Atribui valores */ m2 = Jun; m3 = m2-m1; /* Operações aritméticas permitidas */ if(m1 < m2) /* Comparações permitidas */ A palavra enum Define um conjunto de nomes (cada um deles com um valor inteiro) Enumera esses nome a partir do zero (defaut) ou, como em nosso programa, a partir do primeiro valor fornecido
43 Tipos de dados enumerados: enum enum Mes Jan=1, Fev, Mar, Abr, Mai, Jun, Jul, Ago, Set, Out, Nov, Dez}; int main() enum Mes m1, m2, m3; /* Cria duas variáveis do tipo enum Mes */ m1 = Abr; /* Atribui valores */ m2 = Jun; m3 = m2-m1; /* Operações aritméticas permitidas */ if(m1 < m2) /* Comparações permitidas */ Se fornecemos um valor a alguns nomes e não a outros, o compilador atribuirá o próximo valor inteiro aos que não tiverem valor Uma variável de um tipo enumerado pode ter qualquer valor listado na definição Não podemos atribuir valores não listados m1 = sabado; /* ERRADO. É ilegal */ Tipos enumerados são tratados internamente como inteiros Qualquer operação com inteiros é permitida
44 Usando typedef com enum typedef enum Jan=1, Fev, Mar, Abr, Mai, Jun, Jul, Ago, Set, Out, Nov, Dez} Mes; int main() Mes m1, m2, m3; /* Agora o nome do tipo é Mês */ m1 = Abr; /* Atribui valores */ m2 = Jun; m3 = m2-m1; /* Operações aritméticas permitidas */ if(m1 < m2) /* Comparações permitidas */ Outro exemplo typedef enum Feminino, Masculino} sexo; typedef enum OFF, ON} chave; Se o modo como o compilador atribui valores não se adapta ao que você quer, poderá especificar os seus próprios valores typedef enum Norte=50, Sul=80, Leste=92, Oeste=100} Direcao;
45 Uniões A sintaxe de definições de novos tipos de dados por meio da palavra union é idêntica à da palavra struct Entretanto, uma union utiliza um mesmo espaço de memória a ser compartilhado com diferentes membros enquanto que uma struct aloca um espaço diferente de memória para cada membro Uma union é o meio pelo qual uma parte da memória é tratada ora como uma variável de um certo tipo, ora como outra variável de outro tipo Uniões podem ser usadas para poupar memória! Quando você declara uma variável de um tipo union, automaticamente é alocado um espaço de memória suficiente para conter o seu maior membro
46 Uniões Palavra-chave Etiqueta Chaves union Facil short x; char nota[2]; float ff; }; Ponto-e-vírgula Membros
47 /* Union1.C */ /* Mostra o uso de uniões */ #include <stdio.h> #include <stdlib.h> #include <string.h> /* Para strcpy() */ union Numero char str[30]; int i; float f; }; union Numero x; /* Cria variável */ enum DataType StrType, IntType, FloatType } Tipo; /* Cria variável */ void StrTipo(char n[]) Tipo=StrType; strcpy(x.str, n); } void FloatTipo(float n) Tipo=FloatType; x.f=n; } void IntTipo(int n) Tipo=IntType; x.i=n; } void Print() switch(tipo) case StrType: printf("str = %s\n", x.str); break; case IntType: printf("int = %d\n", x.i); break; case FloatType: printf("float = %.2f\n", x.f); break; } } int main() float y = 34.56; int z = 345; StrTipo("VVB-Treinamento de Pessoal"); Print(); IntTipo(z); Print(); FloatTipo(y); Print(); } system("pause"); return 0;
48 Usando typedef com union A sintaxe de union é a mesma de struct Assim, podemos utilizar typedef typedef union char str[30]; int i; float f; }Numero; Numero x; /* Cria variável*/
49 Combinando declarações Podemos combinar a definição da union com a declaração da variável union Numero char str[30]; int i; float f; }x; /* Cria variável*/ Podemos declarar quantas variáveis quisermos union Numero char str[30]; int i; float f; }x, y, z; /* Cria variáveis*/ A etiqueta pode ser suprimida union }x; char str[30]; int i; float f; /* Cria variável*/
50 Inicializando union Estruturas e matrizes static ou extern podem ser inicializadas quando são definidas Desse modo, seria razoável pensar que o mesmo é permitido para uniões Uma união tem um único membro ativo em qualquer tempo e seria conveniente pensar na seguinte inicialização /* Inicialização ilegal */ static union int idade; float salario; }uinit = }; O compilador deveria ser capaz de entender que estamos inicializando a variável uinit por meio do membro float salario Entretanto, muitos compiladores não permitem a inicialização de uniões e, quando permitem, ela é aplicada apenas ao primeiro membro declarado
51 Inicializando union Se você quiser inicializar uinit.salario, a declaração da união deverá ser modificada /* Inicialização permitida */ static union float salario; /* Deve ser definido primeiro*/ int idade; }uinit = };
52 Uniões de estruturas Uma união pode ter membros de qualquer tipo, até mesmo estruturas ou outras uniões Uma união também pode ser membro de uma estrutura /* UnionStruct.C */ /* Mostra união de estruturas */ #include <stdio.h> #include <stdlib.h> int main(void) struct doisint int n1; int n2; }; union intflo struct doisint x; float f; }unex; printf("sizeof(union intflo) = %d\n", sizeof(union intflo)); unex.x.n1 = 734; unex.x.n2 = 333; printf("unex.x.n1 printf("unex.x.n2 = %d\n", unex.x.n1); = %d\n", unex.x.n2); unex.f = ; printf("unex.f = %.2f\n", unex.f ); } system("pause"); return 0;
53 Uniões de estruturas Observe que o operador ponto foi usado duas vezes para acessar os membros da estrutura interna x Vamos mostrar o uso de uma estrutura de campos bits como membro de uma union Eis um exemplo que permite converter um caractere em seu correspondente em binário
54 /* Binario.C */ /* Mostra união com estrutura */ /* Imprime um caractere em binário */ #include <stdio.h> #include <stdlib.h> typedef struct /* cada membro com um bit de tamanho */ unsigned char bit0: 1; /* bit 0 */ unsigned char bit1: 1; /* bit 1 */ unsigned char bit2: 1; /* bit 2 */ unsigned char bit3: 1; /* bit 3 */ unsigned char bit4: 1; /* bit 4 */ unsigned char bit5: 1; /* bit 5 */ unsigned char bit6: 1; /* bit 6 */ unsigned char bit7: 1; /* bit 7 */ } Bits; typedef union unsigned char ch; Bits x; } Binario; int main(void) Binario B; printf("digite um caractere: "); B.ch = getchar(); printf("o caractere digitado e: %c\n", B.ch); printf("o valor em binario correspondente e: "); printf("%d", B.x.bit7); printf("%d", B.x.bit6); printf("%d", B.x.bit5); printf("%d", B.x.bit4); printf("%d", B.x.bit3); printf("%d", B.x.bit2); printf("%d", B.x.bit1); printf("%d", B.x.bit0); printf("\n"); } system("pause"); return 0;
55 O operador sizeof Uma variável se um tipo union tem o tamanho do maior membro Para verificar isso, usaremos um novo operador C sizeof O sizeof opera sobre o nome de um tipo de dado ou sobre o nome de uma variável e resulta o seu tamanho em bytes /* Sizeof.C */ /* Mostra o uso do operador sizeof() */ #include <stdio.h> #include <stdlib.h> union Numero char str[32]; int i; float f; } x; /* Cria variável */ int main(void) printf("%d\n", sizeof(union Numero)); printf("%d\n", sizeof(x)); } system("pause"); return 0;
56 O operador de endereços (&) com union O endereço de memória de cada membro de uma união é o mesmo, visto que todos compartilham o mesmo espaço Podemos verificar isso utilizando o operador de endereços /* Endereco.C */ /* Mostra o uso do operador de endereço */ #include <stdio.h> #include <stdlib.h> typedef union int i; float f; double d; } Num; int main(void) Num exemplo; printf("endereco de i = %08X\n", &exemplo.i ); printf("endereco de f = %08X\n", &exemplo.f ); printf("endereco de d = %08X\n", &exemplo.d ); printf("endereco de x = %08X\n", &exemplo ); } system("pause"); return 0;
57 Uniões anônimas São definidas sem a especificação do nome do tipo Veja o exemplo a seguir
58 /* UnionAn.C */ /* Mostra o uso de uniões anônimas */ #include <stdio.h> #include <stdlib.h> #include <string.h> /* Para strcpy() */ enum DataType StrType, IntType, FloatType}; typedef struct enum DataType Tipo; union char str_valor[30]; int int_valor; float float_valor; }; } UniaoLiteral; void Print(UniaoLiteral); int main() UniaoLiteral A; A.Tipo=StrType; strcpy(a.str_valor, "VVB-Treinamento de Pessoal"); Print(A); A.Tipo=FloatType; A.float_valor=34.56; Print(A); A.Tipo=IntType; A.int_valor=345; Print(A); system("pause"); return 0; } void Print(UniaoLiteral x) switch(x.tipo) case StrType: } } printf("str = %s\n",x.str_valor); break; case IntType: printf("int = %d\n",x.int_valor); break; case FloatType: printf("float = %.2f\n",x.float_valor); break;
59 Uniões anônimas Em C, uniões anônimas só podem ser definidas como membros de estruturas Elas são acessadas diretamente, por meio do nome da variável struct, como se fossem membros da estrutura Quando criamos uma união anônima, devemos tomar o cuidado de indicar a cada tempo qual é o membro da union corrente Também devemos lembrar que existirá somente um membro de cada vez
MC-102 Algoritmos e Programação de Computadores IC-UNICAMP. Aula 21 - Registros. Por: Luís Augusto Angelotti Meira (Sala IC-71) 1S2005
MC-102 Algoritmos e Programação de Computadores IC-UNICAMP Esta aula foi baseada em [1]. Aula 21 - Registros Por: Luís Augusto Angelotti Meira (Sala IC-71) 1S2005 1 Objetivos Conceituar tipos de dados
Algoritmos e Programação Estruturada
Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.
Programação científica C++
Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 9 Tipos Estruturados Definição de novos tipos com struct Elementos do struct Exemplos Exercícios Motivação Muitas vezes precisamos agrupar informações
INF 1005 Programação I
INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:
MC102 Algoritmos e programação de computadores Aula 3: Variáveis
MC102 Algoritmos e programação de computadores Aula 3: Variáveis Variáveis Variáveis são locais onde armazenamos valores na memória. Toda variável é caracterizada por um nome, que a identifica em um programa,
Capítulo 2: Introdução à Linguagem C
Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso
MC-102 Aula 19 Registros
MC-102 Aula 19 Registros Instituto de Computação Unicamp 4 de Maio de 2015 Roteiro 1 Registros 2 Redefinição de tipos (Instituto de Computação Unicamp) MC-102 Aula 19 4 de Maio de 2015 2 / 17 Registros
Algoritmos e Programação
Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte 05 Prof. Jorge Cavalcanti [email protected] www.univasf.edu.br/~jorge.cavalcanti
Introdução à Programação
Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5
LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes [email protected]
LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes [email protected] Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de
5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES
CAPÍTULO 5 5 VETORES E MATRIZES 5.1 Vetores Um vetor armazena uma determinada quantidade de dados de mesmo tipo. Vamos supor o problema de encontrar a média de idade de 4 pessoas. O programa poderia ser:
PROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 06: Ponteiros Declarando e utilizando ponteiros Ponteiros e vetores Inicializando ponteiros Ponteiros para Ponteiros Cuidados a serem
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA
Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais
system("pause"); //Envia comando para o sistema operacional solicitando parada de execução do programa } //limitador do corpo do programa
Atividade Prática no Ambiente Dev C++ Para as nossas atividades práticas vamos utilizar o ambiente de desenvolvimento da Linguagem C, Dev C++, ele é bastante fácil de utilizar e com muitos recursos. Segue
INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO
INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO Tópicos Estrutura Básica B de Programas C e C++ Tipos de Dados Variáveis Strings Entrada e Saída de Dados no C e C++ INTRODUÇÃO O C++ aceita
Orientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos
Vetores Nos capítulos anteriores estudamos as opções disponíveis na linguagem C para representar: Números inteiros em diversos intervalos. Números fracionários com várias alternativas de precisão e magnitude.
2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10
1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...
Linguagens de Programação I
Linguagens de Programação I Tema # 8 Strings e Estruturas Susana M Iglesias 1 STRINGS - INTRODUÇÃO Strings (cadeia de caracteres): é uma serie de caracteres que podem ser tratados como uma unidade simples,
17 - Funções e Procedimentos em C Programação Modular
17 - Funções e Procedimentos em C Programação Modular Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante 17
Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo [email protected].
Programação Estruturada Linguagem C Fundamentos da Linguagem Prof. Luis Nícolas de Amorim Trigo [email protected] Sumário Estrutura Básica Bibliotecas Básicas Tipos de Dados Básicos Variáveis/Declaração
Registros. Técnicas de Programação. Rafael Silva Guimarães :p://:p.ci.ifes.edu.br/informa@ca/rafael_guimaraes
Rafael Silva Guimarães :p://:p.ci.ifes.edu.br/informa@ca/rafael_guimaraes Registros Técnicas de Programação Baseado no material do Prof. Rafael Vargas Mesquita Conceito de Registro (Struct) Vetores e Matrizes
PROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor
Componentes da linguagem C++
Componentes da linguagem C++ C++ é uma linguagem de programação orientada a objetos (OO) que oferece suporte às características OO, além de permitir você realizar outras tarefas, similarmente a outras
INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++ Profª ª Danielle Casillo COMPILADORES Toda linguagem de programação
Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em
20 Caracteres - Tipo char
0 Caracteres - Tipo char Ronaldo F. Hashimoto e Carlos H. Morimoto Até agora vimos como o computador pode ser utilizado para processar informação que pode ser quantificada de forma numérica. No entanto,
Resumo da Introdução de Prática de Programação com C. A Linguagem C
Resumo da Introdução de Prática de Programação com C A Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional
INF 1005 Programação I
INF 1005 Programação I Aula 12 Cadeia de Caracteres (Strings) Edirlei Soares de Lima Caracteres Até o momento nós somente utilizamos variáveis que armazenam números (int, float ou
Estrutura de Dados Básica
Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 4: Tipos de Dados O objetivo desta aula é apresentar os tipos de dados manipulados pela linguagem C, tais como vetores e matrizes, bem como
C++ - Matrizes. Observ.: C++ não avisa quando o limite de uma matriz foi excedido. Providenciar a verificação é responsabilidade do programador.
C++ - Matrizes É um conjunto de variáveis, do mesmo tipo, referenciadas por um único nome, onde cada variável é diferenciada por meio de um número entre colchetes chamado índice. Declaração : tipo nome
Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador
Linguagem C Tipos de Dados void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador Funções void void pode ser usado em lugar de um tipo, para indicar a ausência de valor
Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados
Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados Tipo de dados, tipo abstrato de dados, estruturas de dados Termos parecidos, mas com significados diferentes Tipo de dado Em linguagens de programação
Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo [email protected]
Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo [email protected] Breve Histórico A linguagem de programação C foi criada na década de 70, por Dennis Ritchie, que a implementou,
Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre
Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 02 Fundamentos de Linguagens Sumário : Linguagem, alfabeto e gramática
Aula 1 Tipo Abstrato de Dados
Aula 1 Tipo Abstrato de Dados Luiz Chaimowicz e Raquel O. Prates Livro Projeto de Algoritmos Capítulo 1 2009-1 O que é um algoritmo? O que é um programa? Algoritmos Sequência de ações executáveis para
Variáveis e Comandos de Atribuição
BCC 201 - Introdução à Programação Variáveis e Comandos de Atribuição Guillermo Cámara-Chávez UFOP 1/47 Estrutura Básica de um programa C I < d i r e t i v a s do pré p r o c e s s a d o r > < d e c l
Estruturas (Registros)
Estruturas (Registros) Agrupa conjunto de tipos de dados distintos sob um único nome string string inteiro inteiro inteiro float float Cadastro Pessoal Nome Endereço Telefone Idade Data de Nascimento Peso
INF 1007 Programação II
INF 1007 Programação II Aula 06 Tipos Estruturados Edirlei Soares de Lima Dados Compostos Até agora somente utilizamos tipos de dados simples: char, int, float, double. Muitas vezes
Operaçõe õ s c om o Strings Intr oduç ão a o Ponte iros o e Funçõe õ s
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Operações com Strings Introdução a Ponteiros e Funções Profa Rosana Braga 1 Strings Strings são seqüências de caracteres
Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza
Introdução Manipulação de arquivos em C Estrutura de Dados II Prof Jairo Francisco de Souza Manipulação de Arquivo em C Existem dois tipos possíveis de acesso a arquivos na linguagem C : sequencial (lendo
Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C
Edwar Saliba Júnior Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C Belo Horizonte 2010 Sumário 1 Nota:... 2 2 Comandos e Palavras Reservadas:... 3 3 Dicas... 4 3.1 Strings
Algoritmo e Técnica de Programação - Linguagem C
Algoritmo e Técnica de Programação Linguagem C Gilbran Silva de Andrade 5 de junho de 2008 Introdução A liguagem C foi inventada e implementada por Dennis Ritchie em um DEC PDP-11 que utilizava o sistema
13 Números Reais - Tipo float
13 Números Reais - Tipo float Ronaldo F. Hashimoto e Carlos H. Morimoto Até omomentonoslimitamosaouso do tipo inteiro para variáveis e expressões aritméticas. Vamos introduzir agora o tipo real. Ao final
Curso de Programação Computadores
3 O Primeiro Programa em C Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 3 O Primeiro Programa em C 3.1 - Introdução Depois dos conceitos
Introdução a Java. Hélder Nunes
Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais
Introdução a C Tipos de Dados Variáveis Operadores
Introdução a C Tipos de Dados Variáveis Operadores INF1005 Programação I Prof. Hélio Lopes [email protected] sala 408 RDC 1 introdução a C tópicos ciclo de desenvolvimento sistemas numéricos tipos de
Tipos de Dados Simples
Programação 11543: Engenharia Informática 6638: Tecnologias e Sistemas de Informação Cap. 3 Tipos de Dados Simples Tipos de Dados Simples Objectivos: Hierarquia de tipos de dados Tipos de dados simples
Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação
Linguagem C: variáveis, operadores, entrada/saída Prof. Críston Algoritmos e Programação Linguagem C Linguagem de uso geral (qualquer tipo de aplicação) Uma das linguagens mais utilizadas Foi utilizada
Alocação dinâmica de memória
Alocação dinâmica de memória Jander Moreira 1 Primeiras palavras Na solução de problemas por meio algoritmos ou programas, é comum surgir a necessidade de manter todo o conjunto de dados a ser processado
Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
INF 1620 P1-10/04/02 Questão 1 Nome:
INF 1620 P1-10/04/02 Questão 1 Considere uma disciplina que adota o seguinte critério de aprovação: os alunos fazem duas provas (P1 e P2) iniciais; se a média nessas duas provas for maior ou igual a 5.0,
Linguagem de Programação I
Linguagem de Programação I Curso de Sistemas de Informação Karla Donato Fook [email protected] DESU / DAI 2016 Linguagem de Programação C 2 1 Linguagem de Programação C Os programas em C consistem em
Tipo de Dados em Linguagem C
Tipo de Dados em Linguagem C Principais tipos de dados em C int : tipo de dados inteiros (exemplo: 1, -3, 100, -9, 18, etc.) float : tipo de dados reais (exemplo: 1.33, 3.14, 2.00, -9.0, 1.8, etc.) Ocupa
Conceitos de Linguagens de Programação
Conceitos de Linguagens de Programação Aula 07 Nomes, Vinculações, Escopos e Tipos de Dados Edirlei Soares de Lima Introdução Linguagens de programação imperativas são abstrações
Manipulação de Arquivos
1 Manipulação de Arquivos Para realizar E/S em arquivo, você precisa incluir o arquivo-cabeçalho fstream.h nos programas. Esse arquivo define muitas classes e valores importantes. Abrindo e fechando um
9. Estruturas em C Registros
9. Estruturas em C Registros Unesp Campus de Guaratinguetá Curso: Programação de Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 1 9. Estrutura Até o presente momento os nossos dados eram armazenados
Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.
Linguagem e Técnicas de Programação I Operadores, expressões e funções Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Operadores básicos Toda linguagem de programação, existem
Fundamentos de Programaçã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];
Resumo da Matéria de Linguagem de Programação. Linguagem C
Resumo da Matéria de Linguagem de Programação Linguagem C Vitor H. Migoto de Gouvêa 2011 Sumário Como instalar um programa para executar o C...3 Sintaxe inicial da Linguagem de Programação C...4 Variáveis
Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo
Algoritmos e Estruturas de Dados I 01/2013 Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Problema 1 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em
Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica
Introdução a Programação Ponteiros e Strings, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos a relação entre ponteiros e strings Ponteiros para strings X Vetores de Caracteres Vetores de ponteiros
Estruturas II UFOP 1/1
BCC 201 - Introdução à Programação I Estruturas II Guillermo Cámara-Chávez UFOP 1/1 Conceito de struct I Vetores e matrizes Estruturas de dados homegêneas Armazenam vários valores, mas todos de um mesmo
AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme
AULA 2: INTRODUÇÃO A LINGUAGEM DE C Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme Agenda Introdução a linguagem C Compiladores Variáveis IDEs Exemplos Exercícios Introdução A Linguagem C
Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++
Edwar Saliba Júnior Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++ Belo Horizonte 2009 Sumário 1 Nota:... 2 2 Comandos e Palavras Reservadas:... 3 3 Dicas... 4
Prof. Esp. Adriano Carvalho
Prof. Esp. Adriano Carvalho O que é um Programa? Um arquivo contendo uma sequência de comandos em uma linguagem de programação especifica Esses comandosrespeitam regras de como serem escritos e quais
Curso de Linguagem C
Curso de Linguagem C 1 Aula 1 - INTRODUÇÃO...4 AULA 2 - Primeiros Passos...5 O C é "Case Sensitive"...5 Dois Primeiros Programas...6 Introdução às Funções...7 Introdução Básica às Entradas e Saídas...
Introdução a POO. Introdução a Linguagem C++ e POO
Introdução a POO Marcio Santi Linguagem C++ Introdução a Linguagem C++ e POO Programação Orientada a Objetos (POO) e C++ Recursos C++ não relacionados às classes Incompatibilidades entre C e C++ Classes
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).
Cast (conversão) Um tipo de dado pode ser convertido momentaneamente em outro tipo com um cast. Em linguagem C a sintaxe usada é formada pelo tipo desejado entre parênteses precedendo a expressão a ser
Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.
Data: 14/8 Página 1 de 9 Primeiros passos Introdução Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++. No tutorial anterior, mostramos como
Algoritmos e Programação _ Departamento de Informática
16 ARQUIVOS Um arquivo corresponde a um conjunto de informações (exemplo: uma estrutura de dados-registro), que pode ser armazenado em um dispositivo de memória permanente, exemplo disco rígido. As operações
Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto
Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional UNIX. O C é derivado de uma outra linguagem: o B,
Roteiro 1: Dados, variáveis, operadores e precedência
1. Introdução Universidade Federal do ABC Disciplina: Processamento da Informação (BC-0505) Assunto: Dados, variáveis, operadores e precedência Roteiro 1: Dados, variáveis, operadores e precedência Nesta
ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto
Persistência de Dados
Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD
Programação: Tipos, Variáveis e Expressões
Programação de Computadores I Aula 05 Programação: Tipos, Variáveis e Expressões José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/56 Valores Valor é uma entidade
José Romildo Malaquias 2011-1
Programação de Computadores I Aula 08 Programação: Estruturas de Repetição José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/58 Motivação Como imprimir os três
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
O que é uma Função - Comando return - Protótipos de Funções - Tipos de Funções - Escopo de Variáveis - Passagem de parâmetros Algoritmo e Programação Aula 06 - Funções Colegiado de Engenharia da Computação
DEFINIÇÃO DE MÉTODOS
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 2 DEFINIÇÃO DE MÉTODOS Todo o processamento que um programa Java faz está definido dentro dos
Criando um script simples
Criando um script simples As ferramentas de script Diferente de muitas linguagens de programação, você não precisará de quaisquer softwares especiais para criar scripts de JavaScript. A primeira coisa
Java Como Programar, 8/E
Capítulo 2 Introdução aos aplicativos Java Java Como Programar, 8/E (C) 2010 Pearson Education, Inc. Todos os 2.1 Introdução Programação de aplicativo Java. Utilize as ferramentas do JDK para compilar
Introdução a Computação
Introdução a Computação Aula 02 Introdução a Linguagem C Edirlei Soares de Lima Lógica de Programação Lógica de Programação é a técnica de criar sequências lógicas de ações para
Italo Valcy <[email protected]>
Programação C Módulo 01 Introdução à linguagem C Italo Valcy www.ieee.org/ufba Italo Valcy Programação em C Licença de uso e distribuição Todo o material aqui disponível pode, posteriormente,
Linguagem C: agregados heterogêneos, arquivos binários, recursividade. Prof. Críston Algoritmos e Programação
Linguagem C: agregados heterogêneos, arquivos binários, recursividade Prof. Críston Algoritmos e Programação Agregados heterogêneos Permitem agrupar variáveis de diferentes tipos em um único registro struct
Programação Básica em Arduino Aula 2
Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel Variáveis são lugares (posições) na memória principal que servem para armazenar dados. As variáveis são acessadas
5 Apresentando a linguagem C
5 Apresentando a linguagem C O criador da linguagem de programação C foi Dennis Ritchie que, na década de 70, programou-a por meio de um computador DEC PDP-11 rodando sistema operacional Unix. Entretanto,
2 Orientação a objetos na prática
2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos
JSP - ORIENTADO A OBJETOS
JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...
Algoritmos de Busca em Tabelas
Dentre os vários algoritmos fundamentais, os algoritmos de busca em tabelas estão entre os mais usados. Considere por exemplo um sistema de banco de dados. As operações de busca e recuperação dos dados
Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>
Aula 1 C é uma linguagem de programação estruturada desenvolvida por Dennis Ritchie nos laboratórios Bell entre 1969 e 1972; Algumas características: É case-sensitive, ou seja, o compilador difere letras
Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos
TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br [email protected]
Introdução à Lógica de Programação
Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha
Programas simples em C
Programas simples em C Problema 1. Escreve um programa em C que dados dois inteiros indique se são iguais ou qual o maior. Utilizar a construção em 5 etapas... quais? 1. Perceber o problema 2. Ideia da
Processamento da Informação Teoria. Algoritmos e Tipos de dados
Processamento da Informação Teoria Algoritmos e Tipos de dados Semana 01 Prof. Jesús P. Mena-Chalco 24/04/2013 (*) Slides adaptados das aulas do Prof. Harlen Costa Batagelo Algumas definições de algoritmo
Técnicas de Programação I
Técnicas de Programação I Conceitos básicos C/C++ Material baseado nas aulas da Profa. Isabel Harb Manssour http://www.inf.pucrs.br/~manssour/laproi, entre outros materias Registros e Arquivos Conceito
