Baixe o app para aproveitar ainda mais
Prévia do material em texto
TT 130 – Algoritmos e Programac¸a˜o de Computadores I Prof. Ramom Santana Rebouc¸as ramom sr@gmail.com Aula 09 e 10 Structs e Ponteiros Conteu´do 1 Structs 2 Vetor de estruturas 3 Exerc´ıcios: parte 1 4 Ponteiros 5 Vetores e ponteiros 6 Refereˆncias Conteu´do 1 Structs 2 Vetor de estruturas 3 Exerc´ıcios: parte 1 4 Ponteiros 5 Vetores e ponteiros 6 Refereˆncias Conteu´do 1 Structs 2 Vetor de estruturas 3 Exerc´ıcios: parte 1 4 Ponteiros 5 Vetores e ponteiros 6 Refereˆncias Conteu´do 1 Structs 2 Vetor de estruturas 3 Exerc´ıcios: parte 1 4 Ponteiros 5 Vetores e ponteiros 6 Refereˆncias Conteu´do 1 Structs 2 Vetor de estruturas 3 Exerc´ıcios: parte 1 4 Ponteiros 5 Vetores e ponteiros 6 Refereˆncias Conteu´do 1 Structs 2 Vetor de estruturas 3 Exerc´ıcios: parte 1 4 Ponteiros 5 Vetores e ponteiros 6 Refereˆncias U¨bersicht 1 Structs 2 Vetor de estruturas 3 Exerc´ıcios: parte 1 4 Ponteiros 5 Vetores e ponteiros 6 Refereˆncias Definic¸a˜o Estrutura (struct) e´ um grupo de varia´veis relacionadas entre si. Structs podem conter varia´veis de diversos tipos de dados. Uma struct tem a seguinte forma: struct tipo{ (deckarac¸a˜o de varia´veis) }; A palavra chave, struct, e´ usada para definir a estrutura. Em seguida damos o nome do tipo que queremos para nossa estrutura, e dentro dela, declaramos as varia´veis que desejamos. Definic¸a˜o Estrutura (struct) e´ um grupo de varia´veis relacionadas entre si. Structs podem conter varia´veis de diversos tipos de dados. Uma struct tem a seguinte forma: struct tipo{ (deckarac¸a˜o de varia´veis) }; A palavra chave, struct, e´ usada para definir a estrutura. Em seguida damos o nome do tipo que queremos para nossa estrutura, e dentro dela, declaramos as varia´veis que desejamos. Definic¸a˜o Estrutura (struct) e´ um grupo de varia´veis relacionadas entre si. Structs podem conter varia´veis de diversos tipos de dados. Uma struct tem a seguinte forma: struct tipo{ (deckarac¸a˜o de varia´veis) }; A palavra chave, struct, e´ usada para definir a estrutura. Em seguida damos o nome do tipo que queremos para nossa estrutura, e dentro dela, declaramos as varia´veis que desejamos. Definic¸a˜o Estrutura (struct) e´ um grupo de varia´veis relacionadas entre si. Structs podem conter varia´veis de diversos tipos de dados. Uma struct tem a seguinte forma: struct tipo{ (deckarac¸a˜o de varia´veis) }; A palavra chave, struct, e´ usada para definir a estrutura. Em seguida damos o nome do tipo que queremos para nossa estrutura, e dentro dela, declaramos as varia´veis que desejamos. Definic¸a˜o Estrutura (struct) e´ um grupo de varia´veis relacionadas entre si. Structs podem conter varia´veis de diversos tipos de dados. Uma struct tem a seguinte forma: struct tipo{ (deckarac¸a˜o de varia´veis) }; A palavra chave, struct, e´ usada para definir a estrutura. Em seguida damos o nome do tipo que queremos para nossa estrutura, e dentro dela, declaramos as varia´veis que desejamos. Definic¸a˜o Estrutura (struct) e´ um grupo de varia´veis relacionadas entre si. Structs podem conter varia´veis de diversos tipos de dados. Uma struct tem a seguinte forma: struct tipo{ (deckarac¸a˜o de varia´veis) }; A palavra chave, struct, e´ usada para definir a estrutura. Em seguida damos o nome do tipo que queremos para nossa estrutura, e dentro dela, declaramos as varia´veis que desejamos. Definic¸a˜o Para mais clareza, vejamos o seguinte exemplo de estrutura: struct funcionario{ char nome[20]; int idade; char sexo; }; No exemplo acima, temos: 1 A instruc¸a˜o ’struct’ para definir nossa estrutura. 2 Demos o nome ’funcionario’ para o tipo da nossa estrutura. 3 Dentro da nossa estrutura, definimos as varia´veis desejadas. struct tipo{ (deckarac¸a˜o de varia´veis) } 4 A palavra chave, struct, e´ usada para definir a estrutura. Em seguida damos o nome do tipo que queremos para nossa estrutura, e dentro dela, declaramos as varia´veis que desejamos. Definic¸a˜o Para mais clareza, vejamos o seguinte exemplo de estrutura: struct funcionario{ char nome[20]; int idade; char sexo; }; No exemplo acima, temos: 1 A instruc¸a˜o ’struct’ para definir nossa estrutura. 2 Demos o nome ’funcionario’ para o tipo da nossa estrutura. 3 Dentro da nossa estrutura, definimos as varia´veis desejadas. struct tipo{ (deckarac¸a˜o de varia´veis) } 4 A palavra chave, struct, e´ usada para definir a estrutura. Em seguida damos o nome do tipo que queremos para nossa estrutura, e dentro dela, declaramos as varia´veis que desejamos. Definic¸a˜o Para mais clareza, vejamos o seguinte exemplo de estrutura: struct funcionario{ char nome[20]; int idade; char sexo; }; No exemplo acima, temos: 1 A instruc¸a˜o ’struct’ para definir nossa estrutura. 2 Demos o nome ’funcionario’ para o tipo da nossa estrutura. 3 Dentro da nossa estrutura, definimos as varia´veis desejadas. struct tipo{ (deckarac¸a˜o de varia´veis) } 4 A palavra chave, struct, e´ usada para definir a estrutura. Em seguida damos o nome do tipo que queremos para nossa estrutura, e dentro dela, declaramos as varia´veis que desejamos. Definic¸a˜o Para mais clareza, vejamos o seguinte exemplo de estrutura: struct funcionario{ char nome[20]; int idade; char sexo; }; No exemplo acima, temos: 1 A instruc¸a˜o ’struct’ para definir nossa estrutura. 2 Demos o nome ’funcionario’ para o tipo da nossa estrutura. 3 Dentro da nossa estrutura, definimos as varia´veis desejadas. struct tipo{ (deckarac¸a˜o de varia´veis) } 4 A palavra chave, struct, e´ usada para definir a estrutura. Em seguida damos o nome do tipo que queremos para nossa estrutura, e dentro dela, declaramos as varia´veis que desejamos. Definic¸a˜o Para mais clareza, vejamos o seguinte exemplo de estrutura: struct funcionario{ char nome[20]; int idade; char sexo; }; No exemplo acima, temos: 1 A instruc¸a˜o ’struct’ para definir nossa estrutura. 2 Demos o nome ’funcionario’ para o tipo da nossa estrutura. 3 Dentro da nossa estrutura, definimos as varia´veis desejadas. struct tipo{ (deckarac¸a˜o de varia´veis) } 4 A palavra chave, struct, e´ usada para definir a estrutura. Em seguida damos o nome do tipo que queremos para nossa estrutura, e dentro dela, declaramos as varia´veis que desejamos. Definic¸a˜o Para mais clareza, vejamos o seguinte exemplo de estrutura: struct funcionario{ char nome[20]; int idade; char sexo; }; No exemplo acima, temos: 1 A instruc¸a˜o ’struct’ para definir nossa estrutura. 2 Demos o nome ’funcionario’ para o tipo da nossa estrutura. 3 Dentro da nossa estrutura, definimos as varia´veis desejadas. struct tipo{ (deckarac¸a˜o de varia´veis) } 4 A palavra chave, struct, e´ usada para definir a estrutura. Em seguida damos o nome do tipo que queremos para nossa estrutura, e dentro dela, declaramos as varia´veis que desejamos. Definic¸a˜o Para mais clareza, vejamos o seguinte exemplo de estrutura: struct funcionario{ char nome[20]; int idade; char sexo; }; No exemplo acima, temos: 1 A instruc¸a˜o ’struct’ para definir nossa estrutura. 2 Demos o nome ’funcionario’ para o tipo da nossa estrutura. 3 Dentro da nossa estrutura, definimos as varia´veis desejadas. struct tipo{ (deckarac¸a˜o de varia´veis) } 4 A palavra chave, struct, e´ usada para definir a estrutura. Em seguida damos o nome do tipo que queremos para nossa estrutura, e dentro dela, declaramos as varia´veis que desejamos. Declarac¸a˜o Uma vez definida a estrutura, podemos declara´-la:struct funcionario f1; A instruc¸a˜o acima, declara uma estrutura f1, do tipo funciona´rio. Na pra´tica, declarar uma estrutura, e´ declarar todas as varia´veis que esta˜o contidas nela. Ou seja, no exemplo acima, estamos declarando as varia´veis ’nome, idade e sexo’ para a estrutura f1, do tipo funciona´rio. Declarac¸a˜o Uma vez definida a estrutura, podemos declara´-la: struct funcionario f1; A instruc¸a˜o acima, declara uma estrutura f1, do tipo funciona´rio. Na pra´tica, declarar uma estrutura, e´ declarar todas as varia´veis que esta˜o contidas nela. Ou seja, no exemplo acima, estamos declarando as varia´veis ’nome, idade e sexo’ para a estrutura f1, do tipo funciona´rio. Declarac¸a˜o Uma vez definida a estrutura, podemos declara´-la: struct funcionario f1; A instruc¸a˜o acima, declara uma estrutura f1, do tipo funciona´rio. Na pra´tica, declarar uma estrutura, e´ declarar todas as varia´veis que esta˜o contidas nela. Ou seja, no exemplo acima, estamos declarando as varia´veis ’nome, idade e sexo’ para a estrutura f1, do tipo funciona´rio. Declarac¸a˜o Uma vez definida a estrutura, podemos declara´-la: struct funcionario f1; A instruc¸a˜o acima, declara uma estrutura f1, do tipo funciona´rio. Na pra´tica, declarar uma estrutura, e´ declarar todas as varia´veis que esta˜o contidas nela. Ou seja, no exemplo acima, estamos declarando as varia´veis ’nome, idade e sexo’ para a estrutura f1, do tipo funciona´rio. Declarac¸a˜o Uma vez definida a estrutura, podemos declara´-la: struct funcionario f1; A instruc¸a˜o acima, declara uma estrutura f1, do tipo funciona´rio. Na pra´tica, declarar uma estrutura, e´ declarar todas as varia´veis que esta˜o contidas nela. Ou seja, no exemplo acima, estamos declarando as varia´veis ’nome, idade e sexo’ para a estrutura f1, do tipo funciona´rio. Inicializac¸a˜o Para atribuir valores as varia´veis que esta˜o dentro de uma estrutura, faz-se: estrutura.var=valor; Vejamos como ficaria no nosso exemplo do funciona´rio: strcpy(f1.nome, ”Eduardo”); f1.idade = 27; f1.sexo = ’M’; Tambe´m podemos atribuir valores no momento da declarac¸a˜o da estrutura: struct funcionario f1={”Eduardo”, 27, ’M’}; Inicializac¸a˜o Para atribuir valores as varia´veis que esta˜o dentro de uma estrutura, faz-se: estrutura.var=valor; Vejamos como ficaria no nosso exemplo do funciona´rio: strcpy(f1.nome, ”Eduardo”); f1.idade = 27; f1.sexo = ’M’; Tambe´m podemos atribuir valores no momento da declarac¸a˜o da estrutura: struct funcionario f1={”Eduardo”, 27, ’M’}; Inicializac¸a˜o Para atribuir valores as varia´veis que esta˜o dentro de uma estrutura, faz-se: estrutura.var=valor; Vejamos como ficaria no nosso exemplo do funciona´rio: strcpy(f1.nome, ”Eduardo”); f1.idade = 27; f1.sexo = ’M’; Tambe´m podemos atribuir valores no momento da declarac¸a˜o da estrutura: struct funcionario f1={”Eduardo”, 27, ’M’}; U¨bersicht 1 Structs 2 Vetor de estruturas 3 Exerc´ıcios: parte 1 4 Ponteiros 5 Vetores e ponteiros 6 Refereˆncias Vetor de estruturas Considere definida uma struct do tipo estrutura. A seguinte instruc¸a˜o, declara um vetor de n estruturas do mesmo tipo: struct estrutura vetor[n]; A inicializac¸a˜o das estruturas vetor[i], com i = 0, 1, 2, . . . , n− 1, funciona exatamente do mesmo modo como visto. Ou seja, se ’var’ e´ uma varia´vel dentro da estrutura v[i], basta fazer v[i].var = valor Vetor de estruturas Considere definida uma struct do tipo estrutura. A seguinte instruc¸a˜o, declara um vetor de n estruturas do mesmo tipo: struct estrutura vetor[n]; A inicializac¸a˜o das estruturas vetor[i], com i = 0, 1, 2, . . . , n− 1, funciona exatamente do mesmo modo como visto. Ou seja, se ’var’ e´ uma varia´vel dentro da estrutura v[i], basta fazer v[i].var = valor Vetor de estruturas Considere definida uma struct do tipo estrutura. A seguinte instruc¸a˜o, declara um vetor de n estruturas do mesmo tipo: struct estrutura vetor[n]; A inicializac¸a˜o das estruturas vetor[i], com i = 0, 1, 2, . . . , n− 1, funciona exatamente do mesmo modo como visto. Ou seja, se ’var’ e´ uma varia´vel dentro da estrutura v[i], basta fazer v[i].var = valor Vetor de estruturas Considere definida uma struct do tipo estrutura. A seguinte instruc¸a˜o, declara um vetor de n estruturas do mesmo tipo: struct estrutura vetor[n]; A inicializac¸a˜o das estruturas vetor[i], com i = 0, 1, 2, . . . , n− 1, funciona exatamente do mesmo modo como visto. Ou seja, se ’var’ e´ uma varia´vel dentro da estrutura v[i], basta fazer v[i].var = valor Vetor de estruturas Considere definida uma struct do tipo estrutura. A seguinte instruc¸a˜o, declara um vetor de n estruturas do mesmo tipo: struct estrutura vetor[n]; A inicializac¸a˜o das estruturas vetor[i], com i = 0, 1, 2, . . . , n− 1, funciona exatamente do mesmo modo como visto. Ou seja, se ’var’ e´ uma varia´vel dentro da estrutura v[i], basta fazer v[i].var = valor Vetor de estruturas Considere definida uma struct do tipo estrutura. A seguinte instruc¸a˜o, declara um vetor de n estruturas do mesmo tipo: struct estrutura vetor[n]; A inicializac¸a˜o das estruturas vetor[i], com i = 0, 1, 2, . . . , n− 1, funciona exatamente do mesmo modo como visto. Ou seja, se ’var’ e´ uma varia´vel dentro da estrutura v[i], basta fazer v[i].var = valor U¨bersicht 1 Structs 2 Vetor de estruturas 3 Exerc´ıcios: parte 1 4 Ponteiros 5 Vetores e ponteiros 6 Refereˆncias Exerc´ıcios 1 Considere a seguinte estrutura: struct data{ char nome[20]; int d, m, a; };. Fac¸a um programa inicializando a estrutura, e imprima o nome e a idade da pessoa. 2 Com a estrutura da questa˜o anterior, inicialize estruturas para duas pessoas, e diga qual delas e´ a mais velha. 3 Considere a seguinte estrutura: struct Produto{ char nome[10]; float preco; int quantidade; };. Fac¸a um programa que ordene os produtos por: a. Ordem alfabe´tica. b. Ordem crescente de prec¸o. c. Ordem crescente de quantidade. Exerc´ıcios 1 Considere a seguinte estrutura: struct data{ char nome[20]; int d, m, a; };. Fac¸a um programa inicializando a estrutura, e imprima o nome e a idade da pessoa. 2 Com a estrutura da questa˜o anterior, inicialize estruturas para duas pessoas, e diga qual delas e´ a mais velha. 3 Considere a seguinte estrutura: struct Produto{ char nome[10]; float preco; int quantidade; };. Fac¸a um programa que ordene os produtos por: a. Ordem alfabe´tica. b. Ordem crescente de prec¸o. c. Ordem crescente de quantidade. Exerc´ıcios 1 Considere a seguinte estrutura: struct data{ char nome[20]; int d, m, a; };. Fac¸a um programa inicializando a estrutura, e imprima o nome e a idade da pessoa. 2 Com a estrutura da questa˜o anterior, inicialize estruturas para duas pessoas, e diga qual delas e´ a mais velha. 3 Considere a seguinte estrutura: struct Produto{ char nome[10]; float preco; int quantidade; };. Fac¸a um programa que ordene os produtos por: a. Ordem alfabe´tica. b. Ordem crescente de prec¸o. c. Ordem crescente de quantidade. U¨bersicht 1 Structs 2 Vetor de estruturas 3 Exerc´ıcios: parte 1 4 Ponteiros 5 Vetores e ponteiros 6 Refereˆncias Introduc¸a˜o Ponteiros sa˜o varia´veis que armazenam enderec¸os de memo´ria como valores. Um ponteiro conte´m o enderec¸o de uma varia´vel que possui um valor espec´ıfico. Desse modo, pode-se dizer que uma varia´vel faz refereˆncia direta a um valor espec´ıfico, enquanto um ponteiro faz uma refereˆncia indireta. Como qualquer outra varia´vel, um ponteiro deve ser declarado antes de ser utilizado. Para declarar uma varia´vel ponteiro, informamos o tipo de varia´velpara qual ele vai apontar, inserimos o s´ımbolo * e por conseguinte, o nome que se deseja dar ao ponteiro. Introduc¸a˜o Ponteiros sa˜o varia´veis que armazenam enderec¸os de memo´ria como valores. Um ponteiro conte´m o enderec¸o de uma varia´vel que possui um valor espec´ıfico. Desse modo, pode-se dizer que uma varia´vel faz refereˆncia direta a um valor espec´ıfico, enquanto um ponteiro faz uma refereˆncia indireta. Como qualquer outra varia´vel, um ponteiro deve ser declarado antes de ser utilizado. Para declarar uma varia´vel ponteiro, informamos o tipo de varia´vel para qual ele vai apontar, inserimos o s´ımbolo * e por conseguinte, o nome que se deseja dar ao ponteiro. Introduc¸a˜o Ponteiros sa˜o varia´veis que armazenam enderec¸os de memo´ria como valores. Um ponteiro conte´m o enderec¸o de uma varia´vel que possui um valor espec´ıfico. Desse modo, pode-se dizer que uma varia´vel faz refereˆncia direta a um valor espec´ıfico, enquanto um ponteiro faz uma refereˆncia indireta. Como qualquer outra varia´vel, um ponteiro deve ser declarado antes de ser utilizado. Para declarar uma varia´vel ponteiro, informamos o tipo de varia´vel para qual ele vai apontar, inserimos o s´ımbolo * e por conseguinte, o nome que se deseja dar ao ponteiro. Introduc¸a˜o Ponteiros sa˜o varia´veis que armazenam enderec¸os de memo´ria como valores. Um ponteiro conte´m o enderec¸o de uma varia´vel que possui um valor espec´ıfico. Desse modo, pode-se dizer que uma varia´vel faz refereˆncia direta a um valor espec´ıfico, enquanto um ponteiro faz uma refereˆncia indireta. Como qualquer outra varia´vel, um ponteiro deve ser declarado antes de ser utilizado. Para declarar uma varia´vel ponteiro, informamos o tipo de varia´vel para qual ele vai apontar, inserimos o s´ımbolo * e por conseguinte, o nome que se deseja dar ao ponteiro. Declarac¸a˜o e inicializac¸a˜o de varia´veis ponteiro Portanto, declara-se uma varia´vel ponteiro da seguinte forma: tipo *ponteiro; Veja os seguintes exemplos de declarac¸a˜o: int *pont; Cria um uma varia´vel ponteiro que armazena enderec¸o de memo´ria de uma varia´vel do tipo inteiro. float *numero; Cria uma varia´vel ponteiro que armazena enderec¸o de memo´ria para uma varia´vel do tipo float. Declarac¸a˜o e inicializac¸a˜o de varia´veis ponteiro Portanto, declara-se uma varia´vel ponteiro da seguinte forma: tipo *ponteiro; Veja os seguintes exemplos de declarac¸a˜o: int *pont; Cria um uma varia´vel ponteiro que armazena enderec¸o de memo´ria de uma varia´vel do tipo inteiro. float *numero; Cria uma varia´vel ponteiro que armazena enderec¸o de memo´ria para uma varia´vel do tipo float. Declarac¸a˜o e inicializac¸a˜o de varia´veis ponteiro Portanto, declara-se uma varia´vel ponteiro da seguinte forma: tipo *ponteiro; Veja os seguintes exemplos de declarac¸a˜o: int *pont; Cria um uma varia´vel ponteiro que armazena enderec¸o de memo´ria de uma varia´vel do tipo inteiro. float *numero; Cria uma varia´vel ponteiro que armazena enderec¸o de memo´ria para uma varia´vel do tipo float. Declarac¸a˜o e inicializac¸a˜o de varia´veis ponteiro Portanto, declara-se uma varia´vel ponteiro da seguinte forma: tipo *ponteiro; Veja os seguintes exemplos de declarac¸a˜o: int *pont; Cria um uma varia´vel ponteiro que armazena enderec¸o de memo´ria de uma varia´vel do tipo inteiro. float *numero; Cria uma varia´vel ponteiro que armazena enderec¸o de memo´ria para uma varia´vel do tipo float. Operadores de ponteiro Existem dois operadores relacionados a ponteiros: O operador ’&’ retorna o enderec¸o de memo´ria de uma varia´vel. int x=90; int *pontx; pontx = &x; O operador ’*’ acessa o conteu´do do enderec¸o indicado pelo ponteiro. Tambe´m podemos fazer comparac¸a˜o entre ponteiros ou entre os conteu´dos dos espac¸os para onde eles apontam. Cuidado! Na˜o se pode atribuir um valor para o enderec¸o apontado pelo ponteiro, sem antes ter certeza de que o enderec¸o e´ va´lido! Operadores de ponteiro Existem dois operadores relacionados a ponteiros: O operador ’&’ retorna o enderec¸o de memo´ria de uma varia´vel. int x=90; int *pontx; pontx = &x; O operador ’*’ acessa o conteu´do do enderec¸o indicado pelo ponteiro. Tambe´m podemos fazer comparac¸a˜o entre ponteiros ou entre os conteu´dos dos espac¸os para onde eles apontam. Cuidado! Na˜o se pode atribuir um valor para o enderec¸o apontado pelo ponteiro, sem antes ter certeza de que o enderec¸o e´ va´lido! Operadores de ponteiro Existem dois operadores relacionados a ponteiros: O operador ’&’ retorna o enderec¸o de memo´ria de uma varia´vel. int x=90; int *pontx; pontx = &x; O operador ’*’ acessa o conteu´do do enderec¸o indicado pelo ponteiro. Tambe´m podemos fazer comparac¸a˜o entre ponteiros ou entre os conteu´dos dos espac¸os para onde eles apontam. Cuidado! Na˜o se pode atribuir um valor para o enderec¸o apontado pelo ponteiro, sem antes ter certeza de que o enderec¸o e´ va´lido! Operadores de ponteiro Existem dois operadores relacionados a ponteiros: O operador ’&’ retorna o enderec¸o de memo´ria de uma varia´vel. int x=90; int *pontx; pontx = &x; O operador ’*’ acessa o conteu´do do enderec¸o indicado pelo ponteiro. Tambe´m podemos fazer comparac¸a˜o entre ponteiros ou entre os conteu´dos dos espac¸os para onde eles apontam. Cuidado! Na˜o se pode atribuir um valor para o enderec¸o apontado pelo ponteiro, sem antes ter certeza de que o enderec¸o e´ va´lido! Operadores de ponteiro Existem dois operadores relacionados a ponteiros: O operador ’&’ retorna o enderec¸o de memo´ria de uma varia´vel. int x=90; int *pontx; pontx = &x; O operador ’*’ acessa o conteu´do do enderec¸o indicado pelo ponteiro. Tambe´m podemos fazer comparac¸a˜o entre ponteiros ou entre os conteu´dos dos espac¸os para onde eles apontam. Cuidado! Na˜o se pode atribuir um valor para o enderec¸o apontado pelo ponteiro, sem antes ter certeza de que o enderec¸o e´ va´lido! U¨bersicht 1 Structs 2 Vetor de estruturas 3 Exerc´ıcios: parte 1 4 Ponteiros 5 Vetores e ponteiros 6 Refereˆncias Vetores e ponteiros Uma varia´vel vetor, assim como um ponteiro, armazena um enderec¸o de memo´ria: O enderec¸o de in´ıcio do vetor. Por exemplo, na declarac¸a˜o ’int v[5];’, a varia´vel v, conte´m o enderec¸o de memo´ria do in´ıcio do vetor Tanto e´ verdade que uma varia´vel vetor possui um enderec¸o, que podemos atribu´ı-la a uma varia´vel ponteiro: int v[ ] = {1,2,3,4,5}; int *pont; p=v; E enta˜o, podemos usar ponto como se fosse um vetor: for(i=0;i¡5;i++) pont[i]=2*i-1; Vetores e ponteiros Uma varia´vel vetor, assim como um ponteiro, armazena um enderec¸o de memo´ria: O enderec¸o de in´ıcio do vetor. Por exemplo, na declarac¸a˜o ’int v[5];’, a varia´vel v, conte´m o enderec¸o de memo´ria do in´ıcio do vetor Tanto e´ verdade que uma varia´vel vetor possui um enderec¸o, que podemos atribu´ı-la a uma varia´vel ponteiro: int v[ ] = {1,2,3,4,5}; int *pont; p=v; E enta˜o, podemos usar ponto como se fosse um vetor: for(i=0;i¡5;i++) pont[i]=2*i-1; Vetores e ponteiros Uma varia´vel vetor, assim como um ponteiro, armazena um enderec¸o de memo´ria: O enderec¸o de in´ıcio do vetor. Por exemplo, na declarac¸a˜o ’int v[5];’, a varia´vel v, conte´m o enderec¸o de memo´ria do in´ıcio do vetor Tanto e´ verdade que uma varia´vel vetor possui um enderec¸o, que podemos atribu´ı-la a uma varia´vel ponteiro: int v[ ] = {1,2,3,4,5}; int *pont; p=v; E enta˜o, podemos usar ponto como se fosse um vetor: for(i=0;i¡5;i++) pont[i]=2*i-1; Vetores e ponteiros Uma varia´vel vetor, assim como um ponteiro, armazena um enderec¸o de memo´ria: O enderec¸o de in´ıcio do vetor. Por exemplo, na declarac¸a˜o ’intv[5];’, a varia´vel v, conte´m o enderec¸o de memo´ria do in´ıcio do vetor Tanto e´ verdade que uma varia´vel vetor possui um enderec¸o, que podemos atribu´ı-la a uma varia´vel ponteiro: int v[ ] = {1,2,3,4,5}; int *pont; p=v; E enta˜o, podemos usar ponto como se fosse um vetor: for(i=0;i¡5;i++) pont[i]=2*i-1; Diferenc¸a Uma varia´vel vetor, diferente de um ponteiro, possui um enderec¸o fixo. Isso significa que na˜o se pode atribuir um enderec¸o para uma varia´vel do tipo vetor. Tanto e´ verdade que uma varia´vel vetor possui um enderec¸o, que podemos atribu´ı-la a uma varia´vel ponteiro: int v[] = 1,2,3,4,5; int *pont; p=v; E enta˜o, podemos usar ponto como se fosse um vetor: for(i=0;i¡5;i++) pont[i]=2*i-1; Diferenc¸a Uma varia´vel vetor, diferente de um ponteiro, possui um enderec¸o fixo. Isso significa que na˜o se pode atribuir um enderec¸o para uma varia´vel do tipo vetor. Tanto e´ verdade que uma varia´vel vetor possui um enderec¸o, que podemos atribu´ı-la a uma varia´vel ponteiro: int v[] = 1,2,3,4,5; int *pont; p=v; E enta˜o, podemos usar ponto como se fosse um vetor: for(i=0;i¡5;i++) pont[i]=2*i-1; Diferenc¸a Uma varia´vel vetor, diferente de um ponteiro, possui um enderec¸o fixo. Isso significa que na˜o se pode atribuir um enderec¸o para uma varia´vel do tipo vetor. Tanto e´ verdade que uma varia´vel vetor possui um enderec¸o, que podemos atribu´ı-la a uma varia´vel ponteiro: int v[] = 1,2,3,4,5; int *pont; p=v; E enta˜o, podemos usar ponto como se fosse um vetor: for(i=0;i¡5;i++) pont[i]=2*i-1; Diferenc¸a Uma varia´vel vetor, diferente de um ponteiro, possui um enderec¸o fixo. Isso significa que na˜o se pode atribuir um enderec¸o para uma varia´vel do tipo vetor. Tanto e´ verdade que uma varia´vel vetor possui um enderec¸o, que podemos atribu´ı-la a uma varia´vel ponteiro: int v[] = 1,2,3,4,5; int *pont; p=v; E enta˜o, podemos usar ponto como se fosse um vetor: for(i=0;i¡5;i++) pont[i]=2*i-1; Exerc´ıcios Em todos os exerc´ıcios, fac¸a o algoritmo em fluxograma ou pseudoco´digo e depois implemente em C. 1 10 alunos de auto-escola fizeram o exame final para receber a carta de motorista. O co´digo 1, significa aprovado, e 2, reprovado. Fac¸a um programa que leia cada co´digo separadamente e diga quantos alunos foram aprovados e quantos foram reprovados. (A escolha de quantos foram aprovados e reprovados e´ sua) 2 Fac¸a um programa que para qualquer inteiro n > 0, calcule a soma: S = 1 + 1 2 + 1 3 + · · · + 1 n , 3 Fac¸a um programa que verifique se um nu´mero inteiro positivo menor que 1000 e´ primo. (Um inteiro positivo e´ primo, se admite apenas 1 e ele mesmo como divisores). 4 A sequeˆncia de Fibonacci e´ definida da seguinte forma: F1 = 1, F2 = 1 e Fn = Fn−1 + Fn−2, n > 2. Fac¸a um programa que: Exiba os vinte primeiros termos da sequeˆncia de Fibonacci. Exiba o de´cimo e o vige´simo termo. Exiba todos os termos menores que 1000. Exiba o primeiro termo maior que 1000. 5 Fac¸a um programa que reverta nu´meros. Por exemplo, se a entrada for 813, a sa´ıda deve ser 318, se a entrada for 450 a sa´ıda deve ser 54. Exerc´ıcios Em todos os exerc´ıcios, fac¸a o algoritmo em fluxograma ou pseudoco´digo e depois implemente em C. 1 10 alunos de auto-escola fizeram o exame final para receber a carta de motorista. O co´digo 1, significa aprovado, e 2, reprovado. Fac¸a um programa que leia cada co´digo separadamente e diga quantos alunos foram aprovados e quantos foram reprovados. (A escolha de quantos foram aprovados e reprovados e´ sua) 2 Fac¸a um programa que para qualquer inteiro n > 0, calcule a soma: S = 1 + 1 2 + 1 3 + · · · + 1 n , 3 Fac¸a um programa que verifique se um nu´mero inteiro positivo menor que 1000 e´ primo. (Um inteiro positivo e´ primo, se admite apenas 1 e ele mesmo como divisores). 4 A sequeˆncia de Fibonacci e´ definida da seguinte forma: F1 = 1, F2 = 1 e Fn = Fn−1 + Fn−2, n > 2. Fac¸a um programa que: Exiba os vinte primeiros termos da sequeˆncia de Fibonacci. Exiba o de´cimo e o vige´simo termo. Exiba todos os termos menores que 1000. Exiba o primeiro termo maior que 1000. 5 Fac¸a um programa que reverta nu´meros. Por exemplo, se a entrada for 813, a sa´ıda deve ser 318, se a entrada for 450 a sa´ıda deve ser 54. Exerc´ıcios Em todos os exerc´ıcios, fac¸a o algoritmo em fluxograma ou pseudoco´digo e depois implemente em C. 1 10 alunos de auto-escola fizeram o exame final para receber a carta de motorista. O co´digo 1, significa aprovado, e 2, reprovado. Fac¸a um programa que leia cada co´digo separadamente e diga quantos alunos foram aprovados e quantos foram reprovados. (A escolha de quantos foram aprovados e reprovados e´ sua) 2 Fac¸a um programa que para qualquer inteiro n > 0, calcule a soma: S = 1 + 1 2 + 1 3 + · · · + 1 n , 3 Fac¸a um programa que verifique se um nu´mero inteiro positivo menor que 1000 e´ primo. (Um inteiro positivo e´ primo, se admite apenas 1 e ele mesmo como divisores). 4 A sequeˆncia de Fibonacci e´ definida da seguinte forma: F1 = 1, F2 = 1 e Fn = Fn−1 + Fn−2, n > 2. Fac¸a um programa que: Exiba os vinte primeiros termos da sequeˆncia de Fibonacci. Exiba o de´cimo e o vige´simo termo. Exiba todos os termos menores que 1000. Exiba o primeiro termo maior que 1000. 5 Fac¸a um programa que reverta nu´meros. Por exemplo, se a entrada for 813, a sa´ıda deve ser 318, se a entrada for 450 a sa´ıda deve ser 54. Exerc´ıcios Em todos os exerc´ıcios, fac¸a o algoritmo em fluxograma ou pseudoco´digo e depois implemente em C. 1 10 alunos de auto-escola fizeram o exame final para receber a carta de motorista. O co´digo 1, significa aprovado, e 2, reprovado. Fac¸a um programa que leia cada co´digo separadamente e diga quantos alunos foram aprovados e quantos foram reprovados. (A escolha de quantos foram aprovados e reprovados e´ sua) 2 Fac¸a um programa que para qualquer inteiro n > 0, calcule a soma: S = 1 + 1 2 + 1 3 + · · · + 1 n , 3 Fac¸a um programa que verifique se um nu´mero inteiro positivo menor que 1000 e´ primo. (Um inteiro positivo e´ primo, se admite apenas 1 e ele mesmo como divisores). 4 A sequeˆncia de Fibonacci e´ definida da seguinte forma: F1 = 1, F2 = 1 e Fn = Fn−1 + Fn−2, n > 2. Fac¸a um programa que: Exiba os vinte primeiros termos da sequeˆncia de Fibonacci. Exiba o de´cimo e o vige´simo termo. Exiba todos os termos menores que 1000. Exiba o primeiro termo maior que 1000. 5 Fac¸a um programa que reverta nu´meros. Por exemplo, se a entrada for 813, a sa´ıda deve ser 318, se a entrada for 450 a sa´ıda deve ser 54. Exerc´ıcios Em todos os exerc´ıcios, fac¸a o algoritmo em fluxograma ou pseudoco´digo e depois implemente em C. 1 10 alunos de auto-escola fizeram o exame final para receber a carta de motorista. O co´digo 1, significa aprovado, e 2, reprovado. Fac¸a um programa que leia cada co´digo separadamente e diga quantos alunos foram aprovados e quantos foram reprovados. (A escolha de quantos foram aprovados e reprovados e´ sua) 2 Fac¸a um programa que para qualquer inteiro n > 0, calcule a soma: S = 1 + 1 2 + 1 3 + · · · + 1 n , 3 Fac¸a um programa que verifique se um nu´mero inteiro positivo menor que 1000 e´ primo. (Um inteiro positivo e´ primo, se admite apenas 1 e ele mesmo como divisores). 4 A sequeˆncia de Fibonacci e´ definida da seguinte forma: F1 = 1, F2 = 1 e Fn = Fn−1 + Fn−2, n > 2. Fac¸a um programa que: Exiba os vinte primeiros termos da sequeˆncia de Fibonacci. Exiba o de´cimo e o vige´simo termo. Exiba todos os termos menores que 1000. Exiba o primeiro termo maior que 1000. 5 Fac¸a um programa que reverta nu´meros. Por exemplo, se a entrada for 813, a sa´ıda deve ser 318, se a entrada for 450 a sa´ıda deveser 54. Exerc´ıcios Em todos os exerc´ıcios, fac¸a o algoritmo em fluxograma ou pseudoco´digo e depois implemente em C. 1 10 alunos de auto-escola fizeram o exame final para receber a carta de motorista. O co´digo 1, significa aprovado, e 2, reprovado. Fac¸a um programa que leia cada co´digo separadamente e diga quantos alunos foram aprovados e quantos foram reprovados. (A escolha de quantos foram aprovados e reprovados e´ sua) 2 Fac¸a um programa que para qualquer inteiro n > 0, calcule a soma: S = 1 + 1 2 + 1 3 + · · · + 1 n , 3 Fac¸a um programa que verifique se um nu´mero inteiro positivo menor que 1000 e´ primo. (Um inteiro positivo e´ primo, se admite apenas 1 e ele mesmo como divisores). 4 A sequeˆncia de Fibonacci e´ definida da seguinte forma: F1 = 1, F2 = 1 e Fn = Fn−1 + Fn−2, n > 2. Fac¸a um programa que: Exiba os vinte primeiros termos da sequeˆncia de Fibonacci. Exiba o de´cimo e o vige´simo termo. Exiba todos os termos menores que 1000. Exiba o primeiro termo maior que 1000. 5 Fac¸a um programa que reverta nu´meros. Por exemplo, se a entrada for 813, a sa´ıda deve ser 318, se a entrada for 450 a sa´ıda deve ser 54. Exerc´ıcios Em todos os exerc´ıcios, fac¸a o algoritmo em fluxograma ou pseudoco´digo e depois implemente em C. 1 10 alunos de auto-escola fizeram o exame final para receber a carta de motorista. O co´digo 1, significa aprovado, e 2, reprovado. Fac¸a um programa que leia cada co´digo separadamente e diga quantos alunos foram aprovados e quantos foram reprovados. (A escolha de quantos foram aprovados e reprovados e´ sua) 2 Fac¸a um programa que para qualquer inteiro n > 0, calcule a soma: S = 1 + 1 2 + 1 3 + · · · + 1 n , 3 Fac¸a um programa que verifique se um nu´mero inteiro positivo menor que 1000 e´ primo. (Um inteiro positivo e´ primo, se admite apenas 1 e ele mesmo como divisores). 4 A sequeˆncia de Fibonacci e´ definida da seguinte forma: F1 = 1, F2 = 1 e Fn = Fn−1 + Fn−2, n > 2. Fac¸a um programa que: Exiba os vinte primeiros termos da sequeˆncia de Fibonacci. Exiba o de´cimo e o vige´simo termo. Exiba todos os termos menores que 1000. Exiba o primeiro termo maior que 1000. 5 Fac¸a um programa que reverta nu´meros. Por exemplo, se a entrada for 813, a sa´ıda deve ser 318, se a entrada for 450 a sa´ıda deve ser 54. Exerc´ıcios Em todos os exerc´ıcios, fac¸a o algoritmo em fluxograma ou pseudoco´digo e depois implemente em C. 1 10 alunos de auto-escola fizeram o exame final para receber a carta de motorista. O co´digo 1, significa aprovado, e 2, reprovado. Fac¸a um programa que leia cada co´digo separadamente e diga quantos alunos foram aprovados e quantos foram reprovados. (A escolha de quantos foram aprovados e reprovados e´ sua) 2 Fac¸a um programa que para qualquer inteiro n > 0, calcule a soma: S = 1 + 1 2 + 1 3 + · · · + 1 n , 3 Fac¸a um programa que verifique se um nu´mero inteiro positivo menor que 1000 e´ primo. (Um inteiro positivo e´ primo, se admite apenas 1 e ele mesmo como divisores). 4 A sequeˆncia de Fibonacci e´ definida da seguinte forma: F1 = 1, F2 = 1 e Fn = Fn−1 + Fn−2, n > 2. Fac¸a um programa que: Exiba os vinte primeiros termos da sequeˆncia de Fibonacci. Exiba o de´cimo e o vige´simo termo. Exiba todos os termos menores que 1000. Exiba o primeiro termo maior que 1000. 5 Fac¸a um programa que reverta nu´meros. Por exemplo, se a entrada for 813, a sa´ıda deve ser 318, se a entrada for 450 a sa´ıda deve ser 54. Exerc´ıcios Em todos os exerc´ıcios, fac¸a o algoritmo em fluxograma ou pseudoco´digo e depois implemente em C. 1 10 alunos de auto-escola fizeram o exame final para receber a carta de motorista. O co´digo 1, significa aprovado, e 2, reprovado. Fac¸a um programa que leia cada co´digo separadamente e diga quantos alunos foram aprovados e quantos foram reprovados. (A escolha de quantos foram aprovados e reprovados e´ sua) 2 Fac¸a um programa que para qualquer inteiro n > 0, calcule a soma: S = 1 + 1 2 + 1 3 + · · · + 1 n , 3 Fac¸a um programa que verifique se um nu´mero inteiro positivo menor que 1000 e´ primo. (Um inteiro positivo e´ primo, se admite apenas 1 e ele mesmo como divisores). 4 A sequeˆncia de Fibonacci e´ definida da seguinte forma: F1 = 1, F2 = 1 e Fn = Fn−1 + Fn−2, n > 2. Fac¸a um programa que: Exiba os vinte primeiros termos da sequeˆncia de Fibonacci. Exiba o de´cimo e o vige´simo termo. Exiba todos os termos menores que 1000. Exiba o primeiro termo maior que 1000. 5 Fac¸a um programa que reverta nu´meros. Por exemplo, se a entrada for 813, a sa´ıda deve ser 318, se a entrada for 450 a sa´ıda deve ser 54. Exerc´ıcios Em todos os exerc´ıcios, fac¸a o algoritmo em fluxograma ou pseudoco´digo e depois implemente em C. 1 10 alunos de auto-escola fizeram o exame final para receber a carta de motorista. O co´digo 1, significa aprovado, e 2, reprovado. Fac¸a um programa que leia cada co´digo separadamente e diga quantos alunos foram aprovados e quantos foram reprovados. (A escolha de quantos foram aprovados e reprovados e´ sua) 2 Fac¸a um programa que para qualquer inteiro n > 0, calcule a soma: S = 1 + 1 2 + 1 3 + · · · + 1 n , 3 Fac¸a um programa que verifique se um nu´mero inteiro positivo menor que 1000 e´ primo. (Um inteiro positivo e´ primo, se admite apenas 1 e ele mesmo como divisores). 4 A sequeˆncia de Fibonacci e´ definida da seguinte forma: F1 = 1, F2 = 1 e Fn = Fn−1 + Fn−2, n > 2. Fac¸a um programa que: Exiba os vinte primeiros termos da sequeˆncia de Fibonacci. Exiba o de´cimo e o vige´simo termo. Exiba todos os termos menores que 1000. Exiba o primeiro termo maior que 1000. 5 Fac¸a um programa que reverta nu´meros. Por exemplo, se a entrada for 813, a sa´ıda deve ser 318, se a entrada for 450 a sa´ıda deve ser 54. Exerc´ıcios Em todos os exerc´ıcios, fac¸a o algoritmo em fluxograma ou pseudoco´digo e depois implemente em C. 1 10 alunos de auto-escola fizeram o exame final para receber a carta de motorista. O co´digo 1, significa aprovado, e 2, reprovado. Fac¸a um programa que leia cada co´digo separadamente e diga quantos alunos foram aprovados e quantos foram reprovados. (A escolha de quantos foram aprovados e reprovados e´ sua) 2 Fac¸a um programa que para qualquer inteiro n > 0, calcule a soma: S = 1 + 1 2 + 1 3 + · · · + 1 n , 3 Fac¸a um programa que verifique se um nu´mero inteiro positivo menor que 1000 e´ primo. (Um inteiro positivo e´ primo, se admite apenas 1 e ele mesmo como divisores). 4 A sequeˆncia de Fibonacci e´ definida da seguinte forma: F1 = 1, F2 = 1 e Fn = Fn−1 + Fn−2, n > 2. Fac¸a um programa que: Exiba os vinte primeiros termos da sequeˆncia de Fibonacci. Exiba o de´cimo e o vige´simo termo. Exiba todos os termos menores que 1000. Exiba o primeiro termo maior que 1000. 5 Fac¸a um programa que reverta nu´meros. Por exemplo, se a entrada for 813, a sa´ıda deve ser 318, se a entrada for 450 a sa´ıda deve ser 54. U¨bersicht 1 Structs 2 Vetor de estruturas 3 Exerc´ıcios: parte 1 4 Ponteiros 5 Vetores e ponteiros 6 Refereˆncias Refereˆncias DEITEL, H. M., DEITEL, P. J., Como Programar em C. Rio de Janeiro: LTC, 2011. Cap. 7. ASCENCIO, A. F. G., CAMPOS, E. A. V., Fundamentos da Programac¸a˜o de Computadores – Algoritmos, Pascal e C/C++, Pearson Prentice Hall, 2003. . Refereˆncias DEITEL, H. M., DEITEL, P. J., Como Programar em C. Rio de Janeiro: LTC, 2011. Cap. 7. ASCENCIO, A. F. G., CAMPOS, E. A. V., Fundamentos da Programac¸a˜o de Computadores – Algoritmos, Pascal e C/C++, Pearson Prentice Hall, 2003. . Structs Vetor de estruturas Exercícios: parte 1 Ponteiros Vetores e ponteiros Referências
Compartilhar