FUNDAMENTO DE PROGRAMAÇÃO

Slides:



Advertisements
Apresentações semelhantes
Introdução a Programação
Advertisements

INE5408 Estruturas de Dados Ponteiros, passagem de parâmetros e modelos de memória.
Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Alocação Dinâmica de Memória.
Linguagem de Programação – Aula 03 Prof. Me. Ronnison Reges Vidal.
Respostas dos Exercícios. Lista 1 1.a) Escreva uma função que receba como parâmetro uma temperatura dada em graus Fahrenheit e retorna a temperatura.
Algoritmos e Estruturas de Dados I – Ponteiros Profa. Mercedes Gonzales Márquez.
Algoritmos e Programação utilizando Visualg
Estruturas de Repetição
Aula 3 - Estruturas de Repetição
Algoritmo e Lógica Programação Vetores e Matrizes
INF1007: Programação 2 8 – Listas Encadeadas
Algoritmos e Estruturas de Dados I
Profa. Mercedes Gonzales Márquez
Algoritmo e Estrutura de Dados I
INF1007: Programação 2 2 – Alocação Dinâmica
INE5408 Estruturas de Dados
Estruturas de Decisão.
Algoritmos e Estruturas de Dados I
Fundamentos de Programação 1
Introdução à Computação para Engenharia MAC2166
Programação em C Aula 2.
Prof. Wellington Franco Sub-Rotinas:Funções e Procedimentos
3.1 Classes e Objetos Em um programa orientado a objetos normalmente existem vários objetos de um mesmo tipo. Por exemplo, um programa de controle de.
Algoritmos e Estruturas de Dados I
Prof. Wellington Franco
FUNDAMENTO DE PROGRAMAÇÃO
Fundamentos de Programação 1
Prof. Wellington Franco
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
Algoritmos e Estruturas de Dados I – Ponteiros
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
FUNDAMENTO DE PROGRAMAÇÃO
Introdução à Programação BCC 201 Aula
Linguagem de Programação TM 333
Introdução à Programação BCC 201 Aula
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
Prof. Wellington Franco
Programação de Computadores I – Arquivos
FUNDAMENTO DE PROGRAMAÇÃO PROF. WELLINGTON FRANCO
Prof. Wellington Franco
Algoritmos e Técnicas CEFET/RN.
Estruturas de Repetição
FUNDAMENTO DE PROGRAMAÇÃO
aritmética de ponteiros
PROGRAMAÇÃO I UNIDADE 3.
Algoritmos e Estruturas de Dados I
Algoritmos e Programação MC102
Programação de Computadores I – Ponteiros
Listas Encadeadas.
Algoritmos Prof.: Carlos Alberto _1:
Fundamentos de Programação 1
LÓGICA DE PROGRAMAÇÃO LÓGICA: parte da filosofia que trata das formas do pensamento em geral (dedução, indução, hipótese, inferência).
Relembrando... Variáveis : endereçam uma posição de memória que contem um determinado valor dependendo do seu tipo (char, int, float, double, ...) void.
Programação de Computadores I – Arquivos
Vetores – Exercícios de Fixação
Programação de Computadores I – Ponteiros
Computação Eletrônica Vetores e Matrizes
Algoritmos e Estruturas de Dados I – Ponteiros
Estruturas de Dados em C
Strings.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
Construção de Algoritmos AULA 03
Estruturas definidas pelo programador
DHD – Desenvolvimento em Hardware
Algoritmos.
Fundamentos de Programação 1
Programação II Mateus Raeder.
CALCULADORA CARACTERE E VARIÁVEIS COMPOSTAS OU VETORES EM JAVA
Ponteiros.
Aula 2 Professores: Conteúdo: Dante Corbucci Filho
Transcrição da apresentação:

FUNDAMENTO DE PROGRAMAÇÃO LINGUAGEM C – VETORES 1

SUMÁRIO Conceito de String Declaração de String Exercícios 2 2

CONCEITO DE STRING 3 3

CONCEITO DE STRING A forma mais simples de estruturarmos um conjunto de dados é por meio de vetores. Como a maioria das linguagens de programação, C permite a definição de vetores. 4 4

Em C, vetores devem sempre conter dados do mesmo tipo de variável. CONCEITO DE VETORES Vetores, também chamados arrays (do inglês) ou arranjo, são uma maneira de armazenar vários dados num mesmo nome de variável através do uso de índices numéricos. Em C, vetores devem sempre conter dados do mesmo tipo de variável. 5 5

Por exemplo: Como armazenar 3 notas? CONCEITO DE VETORES Por exemplo: Como armazenar 3 notas? float nota1, nota2, nota3; printf("Nota do aluno 1: "); scanf("%f“,&nota1); printf("Nota do aluno 2:"); scanf("%f“,&nota2); printf("Nota do aluno 3:"); scanf("%f“,&nota3); 6 6

Por exemplo: Como armazenar 100 notas? CONCEITO DE VETORES Por exemplo: Como armazenar 100 notas? float nota1, nota2, nota3, /*…*/,nota100; printf("Nota do aluno 1: "); scanf("%f“,&nota1); printf("Nota do aluno 2:"); scanf("%f“,&nota2); printf("Nota do aluno 3:"); scanf("%f“,&nota3); /*…*/ printf("Nota do aluno 100:"); scanf("%f“,&nota100); 7 7

CONCEITO DE VETORES 8

Por exemplo: Como armazenar 100 notas? CONCEITO DE VETORES Por exemplo: Como armazenar 100 notas? float nota[100]; int n, i; printf("Número de alunos:"); scanf("%d", &n); for (i = 0; i < n; i++) { printf("Nota do aluno %d: ", i+1); scanf("%f", &nota[i]); } 9 9

DECLARAÇÃO DE VETORES 10 10

DECLARAÇÃO DE VETORES Declaramos vetores de maneira muito semelhante à declaração de variáveis normais. A única diferença é que depois do nome da variável deve ser informada a quantidade de elementos do vetor. 11 11

<tipo> identificador [ <número de posições> ]; DECLARAÇÃO DE VETORES Portanto a sintaxe é: <tipo> identificador [ <número de posições> ]; A primeira posição de um vetor tem índice 0. A última posição de um vetor tem índice < número de posições > - 1. O sistema de execução não verifica se um dado acesso está a dentro dos limites de um vetor. 12 12

Definimos um vetor em C da seguinte forma: int v[10]; DECLARAÇÃO DE VETORES Definimos um vetor em C da seguinte forma: int v[10]; A declaração acima diz que v é um vetor de inteiros dimensionado com 10 elementos; Em outras palavras, isto é, reservamos um espaço de memória contínuo para armazenar 10 valores inteiros. 13 13

DECLARAÇÃO DE VETORES int v[10]; Assim, se cada int ocupa 4 bytes, a declaração acima reserva um espaço de memória de 40 bytes, como ilustra a figura abaixo: 14 14

DECLARAÇÃO DE VETORES A quantidade de elementos de um vetor não pode ser alterada depois que o vetor for declarado. Da mesma maneira que podemos inicializar uma variável junto com sua declaração, podemos usar as chaves ({ }) para inicializar um array. 15 15

Por exemplo: int vetor[5] = {17, 42, 9, 33, 12}; DECLARAÇÃO DE VETORES Por exemplo: int vetor[5] = {17, 42, 9, 33, 12}; printf(”%i”,vetor[0]); printf(”%i”,vetor[1]); printf(”%i”,vetor[2]); printf(”%i”,vetor[3]); printf(”%i”,vetor[4]); printf(”%i”,vetor[5]); //Errado 16 16

DECLARAÇÃO DE VETORES Para fazer referência a um valor de um elemento contido em um vetor, usamos a notação vetor[índice]; Esta notação que serve tanto para obter quanto para definir o valor de um elemento específico do vetor, dada sua posição. 17 17

DECLARAÇÃO DE VETORES Em C podemos omitir o número de elementos quando os valores são inicializados; Assim o tamanho do vetor será o número de valores inicializados. Por exemplo, as duas notações abaixo são equivalentes: int valores[5] = {1, 2, 3, 4, 5}; int valores[ ] = {1, 2, 3, 4, 5}; 18 18

RELAÇÃO DE VETORES E PONTEIROS 19 19

RELAÇÃO DE VETORES E PONTEIROS Existe uma associação forte entre vetores e ponteiros, pois se existe a declaração: int v[10]; A variável v é uma constante que armazena o endereço inicial do vetor; Portanto, v, sem indexação, aponta para o primeiro elemento do vetor. 20 20

RELAÇÃO DE VETORES E PONTEIROS Com isto, num vetor int v[10] temos as seguintes equivalências: v → aponta para o primeiro elemento do vetor. v+1 → aponta para o segundo elemento do vetor. v+2 → aponta para o terceiro elemento do vetor. v+3 → aponta para o quarto elemento do vetor. v+4 → aponta para o quinto elemento do vetor. v+5 → aponta para o sexto elemento do vetor. v+6 → aponta para o sétimo elemento do vetor. ... v+9 → aponta para o último elemento do vetor. 21 21

PONTEIROS PARA VETORES Estas equivalências implicam que: Escrever &v[i] é equivalente a escrever (v+i). De maneira análoga, escrever v[i] é equivalente a escrever *(v+i) (é lógico que a forma indexada é mais clara e adequada). 22 22

PONTEIROS PARA VETORES 23 23

RELAÇÃO DE VETORES E PONTEIROS Em C, se p representa um ponteiro para um vetor inteiro v, a operação p+1 faz o ponteiro p apontar para o próximo inteiro armazenado no espaço de memória alocado para v. 24 24

RELAÇÃO DE VETORES E PONTEIROS Por exemplo: int i; int v [3] = {4, 7, 1}; int *ptr = v; printf("%p\n", v); printf("%p\n", ptr); printf("%p\n", &ptr); for (i = 0; i < 3; i++){ printf(“O endereço do índice %d de v é%p", i, ptr+i); printf(“ e o valor é %d\n", *(ptr+i) ); } 25 25

EXERCÍCIOS 26 26

RELAÇÃO DE VETORES E PONTEIROS Cria um vetor com 10 posições e zerar todas a posições. Criar um algoritmo que leia um vetor de números inteiros de 5 posições. Mostre cada elemento do vetor multiplicado por 3. Faça um programa que lê 5 números e faz a média aritmética desses números. 27

RELAÇÃO DE VETORES E PONTEIROS Armazenada uma seqüência de 10 números em um vetor, imprimi-la na ordem inversa à da leitura. Dados dois vetores x e y, ambos com n elementos, determinar o produto dos valores de mesmo índice nestes vetores. 28 28

RELAÇÃO DE VETORES E PONTEIROS Dados dois vetores x e y, ambos com n elementos, determinar o maior e menor valor de cada vetor e depois imprimir qual o maior e o menor dentre estes quatro valores. Dado um vetor de tamanho n preenchido com números aleatórios, informar a quantidade de números pares e impares no vetor. Utilizar a função rand( ). 29 29

RELAÇÃO DE VETORES E PONTEIROS Dado um vetor(array ou arranjo) A, criar um vetor B somente com os elementos pares do vetor A. Dado um número inteiro X, obter sua localização no vetor A. Se o valor de X for encontrado imprimir uma mensagem informando a posição do elemento no vetor. Caso contrário, imprimir a mesagem: ‘Número não econtrado no vetor’. 30 30

RELAÇÃO DE VETORES E PONTEIROS Escreve um programa que sorteio, aleatoriamente, 10 números e armazene estes em um vetor. Em seguida, o usuário digita um número e seu programa em C deve acusar se o número digitado está no vetor ou não. Se estiver, diga a posição que está. 31 31