e uso de ponteiros Prof. Leandro Tonietto Estruturas de Dados em C++ - Unisinos abr-10
|
|
- Maria Vitória Lancastre
- 5 Há anos
- Visualizações:
Transcrição
1 Alocação de Memória e uso de ponteiros Prof. Leandro Tonietto Estruturas de Dados em C++ - Unisinos ltonietto@unisinos.br abr-10
2 Sumário Introdução Alocação de variáveis: tipos primitivos Alocação de ponteiros: tipos primitivos Manipulação de strings como array de caracteres Ponteiros e instanciação de objetos com new Alocação dinâmica de vetores 27-abr-10 Leandro Tonietto 2
3 Introdução Qualquer dado para ser processado deve estar na memória Como memória podemos entender como slots de bytes para armazenamento temporário. Todas as variáveis são posições de memória Variáveis na memória possuem: nome, tipo, tamanho e valor que armazenam. Memória n 27-abr-10 Leandro Tonietto 3
4 Alocação de variáveis: tipos primitivos A alocação de variáveis de tipos de dados primitivos (int, double, float, char, bool e etc) é estática, com acesso direto a valores e é trivial. Estática significa que alocada no momento de entrada do seu escopo e será descarregada no final do escopo, tudo de forma automática feita pelo compilador. Chamamos de alocação implícita. Portanto, a simples declaração de uma variável implica em alocação de memória. Exemplo: int v1; 27-abr-10 Leandro Tonietto 4
5 Alocação de variáveis: tipos primitivos Memória n v1 v1 está associado com a posição 0 (zero), que é a próxima livre. Código-fonte: int v1; 27-abr-10 Leandro Tonietto 5
6 Alocação de variáveis: tipos primitivos Memória n v1 v2 v2 está associado com a posição 1, que é a próxima livre. Código-fonte: int v1; int v2; 27-abr-10 Leandro Tonietto 6
7 Alocação de variáveis: tipos primitivos Memória n 5 3 v1 v2 Código-fonte: int v1; int v2; v1 = 5; v2 = 3; Quando atribuímos um valor para uma variável, estamos fazendo com a posição de memória da variável tenha este valor. Ex.: v1=5, significa posição zero recebe valor 5 27-abr-10 Leandro Tonietto 7
8 Alocação de variáveis primitivos Memória n v1 v2 r Código-fonte: int v1; int v2; v1 = 5; v2 = 3; int r = v1+v2; Da mesma forma, a variável r foi alocada na próxima posição livre para int e recebeu um valor, no caso a soma dos valores armazenados nas posições 0 e 1; também podemos dizer que é a soma das variáveis v1 e v2, porque v1 e v2 são como apelidos para as posições 0 e 1 da memória. 27-abr-10 Leandro Tonietto 8
9 Alocação de ponteiros: tipos primitivos A alocação de ponteiros para variáveis de tipos primitivos implica alocação dinâmica, com manipulação indireta a valores e não é trivial. Dinâmica significa a área de memória que armazena um valor deve ser alocada explicitamente no momento da sua utilização. Portanto, sem alocação previa. Chamamos de alocação explícita. Portanto, a simples declaração de uma variável NÃO implica em alocação de memória, deve-se alocar memória primeiro para depois utilizá-la. Exemplo: int *p1; p1 = new int; 27-abr-10 Leandro Tonietto 9
10 Alocação de ponteiros: tipos primitivos Memória n 5 v1 v1 está associado com a posição 0 (zero) e recebe o valor 5. Código-fonte: int v1; v1 = 5; 27-abr-10 Leandro Tonietto 10
11 Alocação de ponteiros: tipos primitivos Memória n 5 v1 p1 Criado um ponteiro (p1) para int (int *). O ponteiro, assim como a variável não tem valor inicial. Código-fonte: int v1; v1 = 5; int *p1; 27-abr-10 Leandro Tonietto 11
12 Alocação de ponteiros: tipos primitivos Memória n 5 &5 v1 p1 Código-fonte: Quando atribuímos um valor para um ponteiro, estamos atribuindo um endereço de memória e não exatamente um valor (dado). int v1; v1 = 5; int *p1; p1 = v1; // ERRO DE LÓGICA NO PROGRAMA: p1 = v1 é a mesma coisa que p1=5, que significa que p1 apontará para o endereço 5 da memória. 27-abr-10 Leandro Tonietto 12
13 Alocação de ponteiros: tipos primitivos Memória n 5 &0 v1 p1 Código-fonte: int v1; v1 = 5; int *p1; p1 = &v1; // Agora está correto, pois p1 recebe o endereço de v1. Se diz, então, que p1 aponta para v1, logo p1 aponta para o endereço 0 (zero) da memória. A instrução p1=&v1 é igual a p1=0 Para utilizarmos com eficiência ponteiros, devemos atribuir para eles endereços de variáveis ou de memória previamente alocados. Para informar obter o endereço de memória de uma variável deve-se utilizar o operador & 27-abr-10 Leandro Tonietto 13
14 Resumo alocação de ponteiros Para criar ponteiros Uso do asterisco antes do nome da variável int *ptr; Para atribuir um endereço de uma variável para um ponteiro Uso do e comercial antes da variável ptr = &v1; Usando o valor de uma variável apontada por um ponteiro Uso do asterisco antes da variável de ponteiro *ptr 27-abr-10 Leandro Tonietto 14
15 Resumo alocação de ponteiros Exemplo de código: #include <iostream> int main(){ int v1; v1 = 0; int *p1 = &v1; cout << v1 está na posição << &v1 << e tem o valor << v1 << endl; cout << p1 está na posição << &p1 << e tem o valor << p1 <<. Valor da posição de mem. Apontada por p1 << *p1 << endl; return 0; } 27-abr-10 Leandro Tonietto 15
16 Alocação de ponteiros: dicas de sobrevivência!! Inicializando ponteiros Uso de NULL ou 0 (são equivalentes) ptr = NULL; // ou ptr = 0; Podem ser criados ponteiros para qualquer tipo de dados, inclusive tipos criados pelo usuário Dica! Use o sufixo ptr nas variáveis de ponteiro Importante: Sempre inicialize os ponteiros para preservar sua sanidade :-) Um ponteiro não inicializado aponta para uma área qualquer de memória, provavelmente, uma área inválida de memória. Erro: access violation. 27-abr-10 Leandro Tonietto 16
17 Strings como array de char Uma texto é formado várias letras, assim como uma string (cadeia de caracteres) é formada por vários dados do tipo char. Exemplo: char c; // declaramos uma letra; char t[10]; //declaramos um texto com 10 letras. Problema: quando é necessário representar um texto com tamanho desconhecido, o que podemos fazer 27-abr-10 Leandro Tonietto 17
18 Strings como array de char A solução é utilizar um ponteiro para char. Exemplo: char *t; // alocamos um ponteiro para char A questão agora é: Todo ponteiro aponta para um endereço de memória, então a string deve estar na memória para ser apontada. A string é um array de caracteres, contudo ponteiros também são utilizados para manipulação de arrays (aliás, lógica de ponteiros e de arrays estão intimamente relacionadas). O acesso a caracteres individuais feito como no uso de arrays, pelo caracteres [ e ]. Exemplo: t[0]. 27-abr-10 Leandro Tonietto 18
19 Strings como array de char Exemplo: #include <iostream> int main(){ char *t = new char[10]; for(int i=0; i<10; i++){ t[i] = 65 + i; // 65=A, 66=B, 67=C,... } char *t2 = t; // o que fizemos aqui t2[0] = Z ; cout << t = << t << endl; cout << t2= << t2 << endl; // o que será impresso na tela return 0; } 27-abr-10 Leandro Tonietto 19
20 Strings como array de char Exemplo: #include <iostream> int main(){ char *t = new char[8]; for(int i=0; i<8; i++){ t[i] = 65 + i; // 65=A, 66=B, 67=C,... } char *t2 = t; // o que fizemos aqui ERRO t2[0] = z ; cout << t= << t < endl; cout << t2= << t2 << endl; // o que será impresso na tela return 0; } Atribuímos o mesmo endereço de memória de t para t2. Quando alteramos um impacta no outro. É um erro comum com ponteiros. Solução: criar nova área de memória e copiar os bytes. 27-abr-10 Leandro Tonietto 20
21 Strings como array de char Exemplo: #include <iostream> int main(){ char *t = new char[8]; for(int i=0; i<8; i++){ t[i] = 65 + i; // 65=A, 66=B, 67=C,... } char *t2 = new char[8]; for(int i=0; i<8; i++){ t2[i] = t[i]; } t2[0] = z ; cout << t= << t < endl; cout << t2= << t2 << endl; return 0; } Atribuímos o mesmo endereço de memória de t para t2. Quando alteramos um impacta no outro. É um erro comum com ponteiros. Solução: criar nova área de memória e copiar os bytes. 27-abr-10 Leandro Tonietto 21
22 Strings como array de char Memória: ERRO t2 = t Memória: SOLUÇÃO t2 = new char[8] 0 &1 t 0 &1 t 1 ZBCDEFGH 1 ABCDEFGH 2 &1 t2 2 &3 t2 3 3 ZBCDEFGH n n 27-abr-10 Leandro Tonietto 22
23 Tarefas Utilizar lógica de ponteiros para resolver o problema abaixo: Criar uma classe Pessoa com os atributos nome e endereco do tipo array de char; e com o atributo inteiro idade. Criar um main para instanciar 3 pessoas. Solicitar que o usuário digite os dados de 3 pessoas diferentes e atribuir estes dados para os objetos de pessoa instanciados anteriormente. Quando copiar dados do tipo char *, cuidar para não apontar para a mesma área de memória. No main, quando utilize sempre a mesma variável temporária para leitura das strings. Por exemplo: char buffer[80]; Dicas: o comando strlen(buffer) retorna o número de caracteres de uma string O comando para leitura de strings de maneira mais fácil é: cin.getline(buffer, 80); 27-abr-10 Leandro Tonietto 23
24 Strings como array de char Quando fizemos a cópia de strings em classes ocorre o mesmo problema do exemplo (t2=t), então temos que utilizar a mesma solução: criar uma nova área de memória, fazer o atributo ponteiro apontar para ela e copiar as informações individualmente. Exemplo: // no main: char buffer[80]; cin.getline(buffer,80); Pessoa p; p.setnome(buffer); Importante: : em strings char * o fim da string deve ser sinalizado com o caractere terminador de string: \0 // na classe Pessoa (.cpp): void Pessoa::setNome(char *n){ int length = strlen(n); nome = new char[length+1]; for(int i=0; i<length; i++){ nome[i] = n[i]; } nome[length] = \0 ; } 27-abr-10 Leandro Tonietto 24
25 Funções para usar com char * Nas bibliotecas padrões de C++ podemos fazer uso de diversas funções utilitárias para manipulação de strings do tipo char *. Biblioteca string.h: #include <string.h> Funções: strcat, strcpy, strtok, strlen, strcmp e etc. 27-abr-10 Leandro Tonietto 25
26 Funções para usar com char * strcat: Concatena duas strings: char *c = new char[3]; strcpy(c, "blá"); strcat(c, "blá123"); // ficará bláblá123 strcpy: Copia conteúdo de um string para outra: char *c = new char[strlen(n)]; strcpy(c, n); // é a mesma coisa que: void Pessoa::setNome(char *n){ int length = strlen(n); nome = new char[length+1]; for(int i=0; i<length; i++){ nome[i] = n[i]; } nome[length] = \0 ; 27-abr-10 Leandro Tonietto 26 }
27 Funções para usar com char * strtok: Separa uma string em várias strings, separadas por algum delimitador. Exemplo: char c[] = "fulano;23;2550.0"; char s[] = ";"; char *t = strtok(c, s); // recebe o primeiro token fulano strlen: Retorna o tamanho de uma string. Na realidade a quantidade de caracteres até encontrar o terminador \0. Exemplo: int length = strlen(nome); strcmp: Compara duas strings caractere-a-caractere e retorna: 0 (zero) se são iguais 1 se a primeira é maior que a segunda -1 se a segunda é maior que a primeira if(strcmp(s1, s2) == 0) return s1; 27-abr-10 Leandro Tonietto 27
28 Funções para usar com char * Exercícios para praticar strings (desafio 2, entregar no GA): Crie um programa que leia duas palavras, se forem iguais, escreva: palavras são iguais. Caso a primeira palavra seja maior alfabeticamente, crie uma nova string com a mensagem: <palavra1> é maior que <palavra2>. Onde <palavra1> é primeira palavra digitada e <palavra2> é a segunda. Crie um programa que leia uma data fornecida pelo usuário. Considere que o usuário digitará uma string no formato dd/mm/yyyy. Imprima os campos da data separadamente. Exemplo: dia <dd> de <MM> de <yyyy>. Onde: <dd>, <mm> e <yyyy> são os valores digitados pelo usuário na string dd/mm/yyyy. Crie uma calculadora de linha de comando. O usuário digita uma expressão no formato: <operando1> <operador> <operando2> (exemplo: 5 + 6). O programa interpretar a expressão, extraindo os números, realizando a operação desejada e imprimindo o resultado. 27-abr-10 Leandro Tonietto 28
29 Alocação de variáveis: tipos estruturados Assim como acontece na alocação de variáveis de tipos primitivos, a alocação de variáveis de tipos estruturados (objetos de classes) é trivial e feita de forma automática e estática: Estática significa que alocada no momento de entrada do seu escopo e será descarregada no final do escopo, tudo de forma automática feita pelo compilador. Chamamos de alocação implícita. Portanto, a simples declaração de uma variável implica em alocação de memória. Exemplo: Pessoa p; 27-abr-10 Leandro Tonietto 29
30 Alocação de variáveis: tipos estruturados N Memória nome=<> endereco=<> idade=<> p Pessoa p; Quando a variável p é declarada ela é automaticamente alocada na memória do programação. Então p já tem um endereço de memória e sua área de memória recebe os seus atributos. Repare que os atributos não possuem valores válidos, sendo eles ponteiros ou não. 27-abr-10 Leandro Tonietto 30
31 Alocação de variáveis: tipos estruturados Memória nome=&13 endereco=<> idade=<> aux[0]= L aux[1]= u aux[2]= i p aux Pessoa p; char aux[4]; cin.getline(aux,4); // aux = Luis p.setnome(aux); aux[3]= s L u i void Pessoa::setNome(char *n){ nome = new char[strlen(n)]; strcpy(nome, n); } 16 s 27-abr-10 Leandro Tonietto 31
32 Alocação de variáveis: tipos estruturados Perguntas: Neste momento, após a linha do setnome(aux), o que aconteceria tentássemos executar imediatamente após a linha: cout << p.getendereco() Justifique Como ficaria o código e o desenho da memória para a atribuição de um endereço para o objeto p 27-abr-10 Leandro Tonietto 32
33 Alocação de ponteiros: tipos estruturados A alocação de ponteiros para objetos de tipos estruturados (classes) implica alocação dinâmica, com manipulação indireta a valores e não é trivial. Dinâmica significa a área de memória que armazena um valor deve ser alocada explicitamente no momento da sua utilização. Portanto, sem alocação previa. Chamamos de alocação explícita. Portanto, a simples declaração de uma variável NÃO implica em alocação de memória, deve-se alocar memória primeiro para depois utilizá-la (new). Exemplo: Pessoa *p; p = new Pessoa(); 27-abr-10 Leandro Tonietto 33
34 Alocação de variáveis: tipos estruturados Memória N &1 nome=<> endereco=<> idade=<> p Pessoa *p; p = new Pessoa(); Quando a variável p é declarada ela é alocada na memória como um ponteiro, ou seja, ela não possui um objeto, mas sim um apontamento apenas. Neste caso, deve-se alocar memória explicitamente para que o ponteiro aponte para uma área de memória válida (operador new). Repare que os atributos ainda não foram alocados. 27-abr-10 Leandro Tonietto 34
35 Alocação de variáveis: tipos estruturados &1 aux[2]= i aux[3]= s u i 27-abr-10 Leandro Tonietto Memória nome=&14 endereco=<> idade=<> aux[0]= L aux[1]= u L s p aux Pessoa *p; p = new Pessoa(); char aux[80]; cin.getline(aux); p->setnome(aux); A alocação dos atributos do objeto apontado pelo ponteiro segue as mesmas regras. Eles devem ser alocados e atribuídos ou copiados para os atributos do objeto. Há uma diferença significativa no uso de ponteiros, ao invés do ponto (.) para acessar os membros do objeto, agora deve-se utilizar a ->.
36 Alocação de variáveis: tipos estruturados Memória 0 &1 p nome=&14 endereco=<> idade=<> aux[0]= L aux[1]= u aux[2]= i aux[3]= s L u i aux Pessoa *p; p = new Pessoa(); char aux[80]; cin.getline(aux); p->setnome(aux); Pessoa *p2; p2 = p; 17 s 18 &1 p2 27-abr-10 Leandro Tonietto 36
37 Resumo sobre ponteiros para objetos Para criar ponteiros Uso do asterisco antes do nome da variável Aluno *ptr; Para atribuir um endereço de um objeto para um ponteiro Uso do e comercial antes da variável Aluno v1; ptr = &v1; Para acessar o conteúdo (objeto) apontado por um ponteiro Uso do asterisco antes da variável de ponteiro *ptr (*ptr).setnome(aux); ou ptr->setnome(aux); 27-abr-10 Leandro Tonietto 37
38 Ponteiros e arrays Arrays e ponteiros estão intimamente relacionados. Podem ser acessados com a mesma lógica. Um ponteiro pode apontar tanto para um 1 elemento quanto para um array de elementos de um determinado tipo. Não importa o tipo de dados. Sendo assim: int b[3]; int *bptr; bptr = b; // repare que não se usa o & // outra forma de fazer a mesma coisa bptr = &b[0]; // é exatamente a mesma coisa!! // é possível acessar elementos do array assim: cout << bptr[2]; bptr += 2; cout << *bptr; // também imprime terceiro elemento 27-abr-10 Leandro Tonietto 38
39 Ponteiros e arrays Memória n b[0]=2 b[1]=1 b[2]=4 &0 b p Código-fonte: int b[]={2,1,4}; int *p = b; cout << p; //imp. 0 cout << *p; // imp. 2 cout << p[2]; // imp. 4 p += 2; // p = = 2 cout << *p; // imp. 4 Quando se atribui um array para um ponteiro, na verdade está se atribuindo o endereço do primeiro elemento. Os demais podem ser acessados pela mesma lógica de array, usando os caracteres [ e ] ou deslocando o ponteiro, com operadores +=, ++, -- e -=. 27-abr-10 Leandro Tonietto 39
40 Resumo: Ponteiros e arrays Ponteiros podem apontar para arrays; neste caso, devese passar o endereço do primeiro elemento: ptr = b; ou ptr=&b[0] Acesso aos elementos do array é feito através da lógica de arrays, usando colchetes. Exemplo, para acessar o n-ésimo elemento do array: ptr[n]; Para arrays de objeto funciona da mesma maneira: Mensagem *mensagens = new Mensagem[5]; // array mensagens[2].settexto(buffer); 27-abr-10 Leandro Tonietto 40
41 Ponteiros para ponteiros Muitas vezes precisamos criar arrays de ponteiros para representar uma coleção de objetos que são de subclasses diferentes, mas de uma mesma superclasse. Por exemplo Criar um array de Pessoas, sendo que é possível instanciar cada registro como Aluno ou Professor. Criar um array de objetos da classe abstrata de Processo, sendo que é possível instanciar como ProcessoCalculo, ou ProcessoLeitura ou outro subtipo qualquer. Exemplo de declaração de array de ponteiros: // cria um array de 100 ponteiros para objetos da classe Pessoa Pessoa *pessoas[100]; // normalmente, deve-se manter também um contador de tamanho // lógico do array int ultimo=0; // para cada elemento do array a ser utilizado no programa, // devemos instanciar um objeto pessoas[ultimo++] = new Professor(); 27-abr-10 Leandro Tonietto 41
42 Ponteiros para ponteiros Quanto temos arrays de ponteiros ou, simplesmente, precisamos alterar um ponteiro criado num objeto em outro objeto, precisamos passar referências como ponteiro para ponteiro. Por exemplo, continuando o exemplo anterior de pessoas: class Impressao { // para fins de exemplificação não foi criado cpp void imprimir(pessoa **p, int ult){ for(int i=0; i<ult; i++){ cout << p[i]->getnome() << endl; } } } Ainda, podemos aumentar (ou modificar) o array original: class AlgumaOutraClasse { // para fins de exemplificação não foi criado cpp void adicionaprofessorfulano(pessoa **p, int *ult){ p[*ult] = new Professor(); p[*ult]->setnome( Fulano ); } } **p é um ponteiro para ponteiro, portanto, podemos receber nesta variável um array de ponteiros *ult é um ponteiro para o último elemento lógico do array ((Professor*)p[*ult])->setEspecialidade( Estrutura de Dados ); (*ult)++; 27-abr-10 Leandro Tonietto 42
43 Próximos passos Exercícios Continuar apresentação sobre programação OO, com herança, uso de ponteiros para relacionamento classebase e classe-derivada e polimorfismo. Passagem de parâmetros para funções. 27-abr-10 Leandro Tonietto 43
44 Exercício Cria a classe Mensagem que representa uma mensagem de . Classe deve conter os atributos: remetente, destinatário, assunto e corpo da mensagem. Crie também os métodos necessários para acesso aos atributos. Entretanto, para os atributos remetente e destinatário, deve-se colocar uma validação, ou seja, só serão aceitos endereços de que: Contenham mais do 6 caracteres. Que possuam o Que possuam algum domínio válido.com,.net ou.org Fazer um arquivo main que crie um ponteiro para um objeto mensagem. Alocar memória dinamicamente para o objeto e fazer a leitura dos campos solicitados. Depois imprimir os dados da mensagem na tela. Modifique o código do método setdestinatario(char *d) para receber mais de um destinatário numa string separada por ; ou, e quebrar num array de vários destinatários (utilize a função strtok). Por exemplo: o usuário digita fulano@tal.com;beltrano@tal.com e o método setdestinatario() quebra em duas strings fulano@tal.com e beltrano@tal.com. 27-abr-10 Leandro Tonietto 44
45 Tarefas Faça a lista de exercícios que está no site da disciplina. Alguns exercícios vão além do que foi visto até o momento, tente fazê-los mesmo assim. Para tanto, seria interessante a leitura do capítulo 8 Ponteiros e strings baseadas em ponteiros do livro C++: como programar, a partir da pág Especialmente o as seções que falam sobre sizeof, const e passagem de parâmetros para funções. Se não conseguir este livro, você pode qualquer outro que fale nestes assuntos. 27-abr-10 Leandro Tonietto 45
46 Referências bibliográficas DEITEL, Harvey M., DEITEL, Paul J. C++: como programar. 5ed. Pearson Education do Brasil Ltda., págs abr-10 Leandro Tonietto 46
Fundamentos de Programação
Fundamentos de Programação Linguagem C++: arrays - aula I Bruno Emerson Gurgel Gomes 1 1 Instituto Federal de Educação, Ciência e Tecnologia do RN (IFRN) 2012 Bruno Gomes (IFRN) Fundamentos de Programação
Leia maisAula 27: Estruturas heterogêneas e alocação dinâmica
Aula 27: Estruturas heterogêneas e alocação dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória
Leia maisCentro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II. Ponteiros
Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II Ponteiros Profa.: Simone Ceolin Slides (Prof.Tiago Rios da Rocha) Primeiro Semestre 2011 Sumário
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: ponteiros e alocação dinâmica Prof. Renato Pimentel 1 Ponteiros 2 Prof. Renato Pimentel 1 Ponteiros: introdução Toda a informação
Leia maisAula 24: Ponteiros e Alocação Dinâmica
Aula 24: Ponteiros e Alocação Dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula anterior Memória Ponteiro Utilização
Leia maisCaracteres, Vetores e Matrizes
Caracteres, Vetores e Matrizes STRINGS VETORES DE CARACTERES Para realizar processamento de texto e trabalhar com letras do alfabeto e outros caracteres como, por exemplo, símbolos de pontuação, a linguagem
Leia maisCURSO BÁSICO DE PROGRAMAÇÃO AULA 15. Revisão Vetores e Matrizes Trabalho
CURSO BÁSICO DE PROGRAMAÇÃO AULA 15 Revisão Vetores e Matrizes Trabalho Definição: Introdução a Linguagem C Vetores Estrutura que permite armazenar um conjunto de dados do mesmo tipo na mesma variável;
Leia maisEstrutura de dados 1. Ponteiros
Estrutura de dados 1 Ponteiros Ponteiros Um ponteiro é um endereço de memória O valor de um ponteiro indica onde uma variável está armazenada Um ponteiro proporciona um modo de acesso a uma variável sem
Leia maisCurso Básico de Programação Aula 11. Revisão Aula Anterior Laços de Repetição While; Do-While; For.
Curso Básico de Programação Aula 11 Revisão Aula Anterior Laços de Repetição While; Do-While; For. Introdução à Linguagem C Laços de Repetição While Do-While For while () { } do {
Leia maisEstruturas de Dados. Profa. Juliana Pinheiro Campos
Estruturas de Dados Profa. Juliana Pinheiro Campos Vetores Forma mais simples de estruturar um conjunto de dados. Exemplo: int p[10]; // vetor de inteiros com 10 elementos Reserva de um espaço de memória
Leia maisInstituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I
LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I Prof. Bruno E. G. Gomes Uma variável em um algoritmo pode ser vista como uma gaveta. A declaração de uma variável reserva uma gaveta (posição) de um certo
Leia maisPonteiros e Tabelas. K&R: Capítulo 5
Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Leia maisEssencialmente, um ponteiro nada mais é do que uma variável que ao invés de conter um valor, contém um endereço de memória.
Ponteiros e Arrays Ponteiros são fundamentais para a programação bem sucedida em C: Passagem de parâmetros por referência; Alocação dinâmica de memória; Aumentar a eficiência de certar rotinas. Essencialmente,
Leia maisProgramação de Computadores II. Cap. 7 Cadeias de Caracteres
Programação de Computadores II Cap. 7 Cadeias de Caracteres Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais
Leia maisCURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres
CURSO BÁSICO DE PROGRAMAÇÃO AULA 11 Revisão Aula Anterior Vetores Cadeia de Caracteres Introdução a Linguagem C Laços de Repetição While Do-While For while() { } do { }while();
Leia maisCURSO BÁSICO DE PROGRAMAÇÃO AULA 16. Ordenação Revisão para a prova
CURSO BÁSICO DE PROGRAMAÇÃO AULA 16 Ordenação Revisão para a prova Algoritmos de Ordenação São algoritmos que organizam uma sequência (por exemplo, os elementos de um vetor) em ordem crescente ou decrescente.
Leia maiscadeia de caracteres (string) INF Programação I Prof. Roberto Azevedo
cadeia de caracteres (string) INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo razevedo@inf.puc-rio.br cadeia de caracteres (string) tópicos caracteres cadeia de caracteres referência Capítulo
Leia maisTÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO
TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO Ponteiros Definição Variável: área de memória que armazena dados de um certo tipo. Na memória, toda variável possui um endereço. Um Ponteiro é uma variável especial
Leia maisCaracteres e Cadeias de Caracteres
Caracteres e Cadeias de Caracteres INF1005 Programação I Prof. Hélio Lopes lopes@inf.puc-rio.br sala 408 RDC 1 caracteres e cadeias de caracteres tópicos caracteres cadeias de caracteres (strings) vetor
Leia maisCapítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática
Capítulo 1: Introdução à Linguagem C Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso caso, a linguagem C.
Leia maisProgramação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Leia maisProgramação I Ponteiros e alocação dinâmica de memória. Prof. Carlos Alberto
Programação I Ponteiros e alocação dinâmica de memória Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Ponteiros O ponteiro é um tipo de dado como int, char ou float; Variáveis
Leia maisPonteiros de Variáveis
Ponteiros de Variáveis C++ permite o armazenamento e a manipulação de valores de endereços de memória. Para cada tipo existente, há um tipo ponteirocapaz de armazenar endereços de memória em que existem
Leia maisÍndice Valor C A D E I A \0 memória
Strings em C A linguagem C não possui um tipo específico de dados Strings. Para fazer uma string, o C utiliza um vetor de caracteres, onde cada posição do vetor representa uma letra. É importante lembrar
Leia maisC++ - 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
Leia maisIntrodução a Programação de Jogos
Introdução a Programação de Jogos Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição
Leia mais3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.5. Vetores 3.5.1. Vetores 3.5.2. Strings 3.5.3.
Leia maisComputação Eletrônica. Strings. Prof: Luciano Barbosa. CIn.ufpe.br
Computação Eletrônica Strings Prof: Luciano Barbosa Recapitulando: Vetores Representar uma coleção de variáveis de um mesmo tipo em uma dimensão Ex: float notas[5]; ou float notas[5] = {2.5,3.2,1.9,4.1,2.0};
Leia maisAula 26: Estruturas heterogêneas
Aula 26: Estruturas heterogêneas Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória Ponteiro Utilização
Leia maisAula 4: Introdução à Linguagem C++
CI208 - Programação de Computadores Aula 4: Introdução à Linguagem C++ Prof. MSc. Diego Roberto Antunes diegor@inf.ufpr.br www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor de Ciências Exatas
Leia maisProgramação Estruturada
Programação Estruturada Ponteiros Parte 1 Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Ponteiros Ponteiro Ponteiros
Leia maisProgramação Orientada a Objetos para Redes de Computadores. Arrays. Arrays
Programação Orientada a Objetos para Redes de Computadores Elias Mitre http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Arrays e Ponteiros Arrays Arrays Estruturas de dados que contêm itens
Leia maisAula 9 Oficina de Programação Strings. Profa. Elaine Faria UFU
Aula 9 Oficina de Programação Strings Profa. Elaine Faria UFU - 2017 String Cadeia de caracteres (ou String) É uma seqüência de letras e símbolos, na qual os símbolos podem ser espaços em branco, dígitos
Leia maisMódulo 7 Cadeias de Caracteres
Estruturas de Dados Módulo 7 Cadeias de Caracteres 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora
Leia maisMódulo 5 Vetores e Alocação Dinâmica
Estruturas de Dados Módulo 5 Vetores e Alocação Dinâmica 1/9/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora
Leia maisProgramação Orientada a Objetos para Redes de Computadores
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Arrays e Ponteiros Arrays Estruturas de dados que
Leia maisComputação 2. Aula 3. Diego Addan Vetores de caracteres (strings)
Computação 2 Aula 3 Vetores de caracteres (strings) Diego Addan diegoaddan@gmail.com Vetor de caracteres (Strings) Uma cadeia de caracteres, mais conhecida como string, é uma seqüência de caracteres (letras
Leia maisPonteiros. Introdução e Alocação Dinâmica
Ponteiros Introdução e Alocação Dinâmica Conceito Um PONTEIRO ou APONTADOR é uma variável usada para armazenar um endereço de memória. Normalmente, o endereço armazenado em um PONTEIRO é a posição de uma
Leia maisTipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas
Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa
Leia maisAula 25: Alocação Dinâmica
Aula 25: Alocação Dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória Ponteiro Utilização de ponteiros
Leia maisPonteiros. Introdução
Ponteiros Introdução Conceito Um PONTEIRO ou APONTADOR é uma variável usada para armazenar um endereço de memória. Normalmente, o endereço armazenado em um PONTEIRO é a posição de uma outra variável na
Leia maisDAS5102 Fundamentos da Estrutura da Informação
Ponteiros e Funções Funções ou sub-rotinas são parcelas de código que podem ser invocadas a partir do programa principal ou até mesmo por outras sub-rotinas. Elas têm como objetivo a execução de uma tarefa
Leia maisEstruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char?
Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? 1 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa o
Leia maisTratamento de Caracteres
Tratamento de Caracteres Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan A tabela ASCII Se os computadores manipulam apenas números, como eles podem armazenar os caracteres de um nome
Leia maisEstruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011
Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa
Leia maisAula 25: Alocação Dinâmica
Aula 25: Alocação Dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aulas anteriores Estruturas de memórias heterogêneas
Leia maisC++ Orientado a Objetos
flavio@facom.ufu.br flaviosilva@computer.org a@comp org 1 Declaração As variáveis em C++ podem ser de duas diferentes naturezas Uma variável pode conter um VALOR ou um ENDEREÇO VALOR A declaração de uma
Leia maisClasses e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Leia maisA sintaxe para se declarar uma variável do tipo ponteiro é dada por:
Pense duas vezes e faça uma vez. Provérbio Chinês. PONTEIROS Um ponteiro nada mais é que uma variável capaz de armazenar um número hexadecimal que corresponde a um endereço de memória de outra variável.
Leia maisALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória
ALGORITMOS E ESRUTRA DE DADOS I Ponteiros Passagem por Valor e Referência Alocação de Memória 2 Agenda Ponteiros Conceitos gerais O que é Ponteiro? Declaração de Ponteiros Operadores para Ponteiros Exemplos
Leia maisArray em Java. Figura 1 - Exemplo de um array de inteiros
Array em Java 1. Objetivos Nesta lição, abordaremos Array em Java. Primeiro, definiremos o que é array e, então, discutiremos como declará-los e usá-los. Ao final desta lição, o estudante será capaz de:
Leia mais11a. Aula Ponteiros e Vetores
11a. Aula Ponteiros e Vetores 2013.2 2 É um tipo de variável com uma ressalva...... armazena apenasendereçode memória (ou null) Se eu tiver o endereço da casa de Francisca, eu poderei visitá-la e lhe fazer
Leia maisINF 1620 P2-14/10/05 Questão 1 Nome:
INF 1620 P2-14/10/05 Questão 1 Considere um cadastro de produtos de um estoque, com as seguintes informações para cada produto: Código de identificação do produto: representado por um valor inteiro Nome
Leia maisProgramação Estruturada Prof. Rodrigo Hausen Organização e Gerenciamento de Memória
Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Organização e Gerenciamento de Memória 1 AULA PASSADA - vetores ou arrays Declaração de um vetor (array) em C: tipo nome[tamanho];
Leia maisAlgoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira Anilton Joaquim da Silva
Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira ronaldo.co@ufu.br Anilton Joaquim da Silva anilton@ufu.br Matrizes Uma matriz é uma variável capaz de armazenar vários dados de
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;
Leia maisMétodos Computacionais. Tipos Estruturados
Métodos Computacionais Tipos Estruturados Tipos Estruturados C oferece tipos primitivos que servem para representar valores simples Reais (float, double), inteiros (int), caracter (char) C oferece também
Leia maisExercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal
Exercício Crie uma função que recebe o número de dias até um determinado evento e calcula e retorna o equivalente em meses, semanas e dias, sem usar vetor ou o conceito de vetor. Considerar que todos os
Leia maisProgramação científica C++
Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 8 Matrizes como argumento de funções O nome de uma matriz (sem os colchetes) representa o endereço onde a matriz está armazenada. Ao passar o
Leia maisLinguagem C: Introdução
Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais
Leia maisIntrodução à Programação C
Introdução à Programação C Fabio Mascarenhas - 2014.2 http://www.dcc.ufrj.br/~fabiom/introc Vetores Para vários problemas precisamos de uma maneira de representar uma sequência de valores com um número
Leia maisLinguagem C: Tipos básicos de dados escalares e cadeia de caracteres. Prof. Leonardo Barreto Campos 1
Linguagem C: Tipos básicos de dados escalares e cadeia de caracteres Prof. Leonardo Barreto Campos 1 Sumário Dados Escalares; Strings: Strings Constantes; Strings Variáveis; A função gets(); A função strcpy();
Leia maisIntrodução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis
Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Estruturas de Seleção if... else Operador condicional (? : ) switch Aula de Hoje Estruturas de Repetição: while/do... while/for
Leia maisAula 8 Oficina de Programação Vetores. Profa. Elaine Faria UFU
Aula 8 Oficina de Programação Vetores Profa. Elaine Faria UFU - 2017 Variáveis Compostas Homogêneas O que uma variável composta homogênea? - Conjunto de variáveis do mesmo tipo - É chamada de forma geral
Leia maisVetores II. Strings Leitura e exibição Biblioteca string.h Operações com Strings. Matrizes Definição de Acesso Operações com Matrizes
Strings Leitura e exibição Biblioteca string.h Operações com Strings Matrizes Definição de Acesso Operações com Matrizes Utilidade da String Facilidade de manipulação de um grande conjunto de caracteres
Leia mais3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.6. Ponteiros 3.6.1. Introdução 3.6.2. Uso
Leia maisIntrodução aos caracteres e processamento de cadeias.! caracteres são blocos fundamentais de programas em
Introdução aos caracteres e processamento de cadeias.! caracteres são blocos fundamentais de programas em C++.! Programa: composto de seqüência de caracteres que quando agrupadas tem um significado, ou
Leia maisProgramação I Matrizes e Strings. Prof. Carlos Alberto
Programação I Matrizes e Strings Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Matrizes Matriz é uma coleção de variáveis do mesmo tipo que é referenciada por um nome comum;
Leia maisEstruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.
1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras
Leia maisMétodos Computacionais. Strings (Vetor de Caracteres)
Métodos Computacionais Strings (Vetor de Caracteres) Em C, o tipo char : Caracteres é usado para representar caracteres pode armazenar valores inteiros (em 1 byte), representando assim, 256 valores distintos
Leia maisAula 1 Apresentação do Curso
Departamento de Sistemas de Computação Universidade de São Paulo SSC 502 Laboratório de Introdução a Ciência de Computação I Aula 1 Apresentação do Curso Responsável Prof. Seiji Isotani (sisotani@icmc.usp.br)
Leia maisIntroduçã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
Leia maisO vetor é provavelmente um dos mais simples e importantes tipos agregados. Através do seu uso, podemos
Cláudio C. Rodrigues Faculdade da Computação -UFU LINGUAGEM C 04: VETORES, STRINGS E MATRIZES Faculdade da Computação - UFU 1 Introdução & Objetivo O vetor é provavelmente um dos mais simples e importantes
Leia maisALOCAÇÃO DINÂMICA DE MEMÓRIA
INE5408 Estruturas de Dados Semestre 2008/1 Prof. Leandro J. Komosinski ALOCAÇÃO DINÂMICA DE Memória de Computador 1 byte = 8 bits (ex.: 00100110) 1 KB = 1024 bytes 1 MB = 1024 KB 1 GB = 1024 MB Meu computador
Leia maisLISTA DE EXERCÍCIOS 2
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO DE CIÊNCIA DA COMPUTAÇÃO PROGRAMAÇÃO DE COMPUTADORES 1. TIPOS COMPOSTOS DE DADOS LISTA DE EXERCÍCIOS 2 1. Considerando as declarações abaixo, responda dizendo
Leia maisProgramação Estruturada Prof. Rodrigo Hausen Agregados de Dados Heterogêneos (structs)
Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Agregados de Dados Heterogêneos (structs) 1 AGREGADO HOMOGÊNEO Um agregado homogêneo de dados é um conjunto de dados que são necessariamente
Leia maisLINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.
LINGUAGEM C: FUNÇÕES Prof. André Backes FUNÇÃO Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. printf(): função que escreve na tela scanf(): função que lê o teclado
Leia maisMais sobre Ponteiros em C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Mais sobre Ponteiros em C Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010 ROTEIRO
Leia maisVetores. Vetores. Vetores. Vetores. Vetores. Algoritmos e Lógica de Programação. Vetores
Algoritmos e Lógica de Programação Linguagem C Conceitos Básicos (Matriz Unidimensional) Conjunto de elementos de um mesmo tipo Elementos são referenciados por um único nome e individualizados pela posição
Leia maisModulo 12: alocação dinâmica de memória
PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 12: alocação dinâmica de memória Aura - Erick aconci@ic.uff.br, erickr@id.uff.br Roteiro porque e como utilizar a alocação dinâmica funções: malloc (
Leia maisx=0; y=x+1; x=&y+2; x 1000 y 1004
Variáveis Conceitos São alocadas em memória; Elas ocupam uma quantidade de btes que depende do tipo da variável; Esses btes são alocados de forma contígua na memória; O valor de uma variável corresponde
Leia maisprim = A ; prim = &A[0];
57 12 - MAIS SOBRE APONTADOR 12.1 - Ponteiros e arrays Em C, ponteiros e matrizes são tratados de maneira semelhante. 12.1.1 - Nome O nome é um ponteiro, ou seja, aponta (contém o endereço) para o primeiro
Leia maisCaracteres. Caracteres são representados através de códigos numéricos. Tabela de códigos: Define correspondência entre caracteres e códigos numéricos
Caracteres Caracteres são representados através de códigos numéricos. Tabela de códigos: Define correspondência entre caracteres e códigos numéricos Exemplo: Tabela ASCII Alguns alfabetos precisam de maior
Leia maisORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO
ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO SOBRECARGA DE OPERADORES (C++) A sobrecarga de operadores ocorre quando desejamos utilizar operadores jáj conhecidos (+,-,*,/,=,+=...)
Leia maisESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS
ESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS Prof. Dr. Daniel Caetano 2014-2 Objetivos Compreender a organização dos dados na memória Compreender o que são ponteiros Capacitar para implementar programas com
Leia maisVetores. IFSC/Florianópolis - Programação Orientada a Objetos + POO - prof. Herval Daminelli
Vetores De modo geral, em linguagem de programação, vetores ou arrays são estruturas de dados que permitem que uma mesma variável possa armazenar mais de um valor; Em Java, vetores são coleções de dados,
Leia maisAlocação Dinâmica em C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Alocação Dinâmica em C Profa Rosana Braga Adaptado de material preparado pela profa Silvana Maria Affonso de Lara
Leia maisLaboratório de programação II
Laboratório de programação II Herança e Polimorfismo Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando
Leia maisLINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.
LINGUAGEM C: FUNÇÕES Prof. André Backes FUNÇÃO Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. printf(): função que escreve na tela scanf(): função que lê o teclado
Leia maisIntrodução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes
Introdução à Programação Introdução a Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Introdução Variáveis Tipos de dados Operadores e Expressões: Operadores
Leia maisEstruturas de Dados Aulas 3 e 4: Uso da. 14/03/2011 e 16/03/2011
Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores 14/03/2011 e 16/03/2011 Uso da memória Existem 3 maneiras de reservar o espaço da memória: Variáveis globais (estáticas) Espaço existe enquanto
Leia maisMatrizes em C. Lucas Ferrari de Oliveira Professor Adjunto. Universidade Federal do Paraná
em C Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná Uma matriz é uma coleção de variáveis do mesmo tipo que é referenciada por um nome comum; Em C todas as matrizes consistem
Leia maisAula 23: Ponteiros Introdução a Programação Túlio Toffolo & Puca Huachi
Aula 23: Ponteiros Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Baseado nos slides do Prof. Guillermo Cámara-Chávez Aulas anteriores Vetores Matrizes Cadeias
Leia maisIntrodução a Programação. Strings (Vetor de Caracteres)
Introdução a Programação Strings (Vetor de Caracteres) Tópicos da Aula Hoje aprenderemos a manipular vetores de caracteres (Strings) Caracteres em C Entrada/Saída de caracteres Funções que manipulam caracteres
Leia maisLinguagens de Programação
Linguagens de Programação Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Parte IV Introdução à Programação em C++ (Continuação) Relembrando da Última Aula... Arrays Mais exemplos de programação
Leia maisProgramação científica C++
Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 2 Expressões Combinação de dados e operadores que resulta em um valor. expressão x = 2 * y + 4; variável operador constante Memória do computador
Leia mais