SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
Programação de
Computadores
Aula 4 e 5
23 e 30/08/2012
Profª Ms. Engª Elaine Cecília Gatto
Unidade 4: Vetores, Matrizes e Strings
Curso de Bacharelado em Engenharia de Computação
Universidade do Sagrado Coração – USC
Bauru/SP
ARRAYS
• São estruturas de dados que consistem em itens de dados
  relacionados do mesmo tipo.
• Arrays e estruturas são entidades estáticas porque
  permanecem do mesmo tamanho ao longo de toda a
  execução do programa.
• Elas podem ser de uma classe de armazenamento automática
  e, portanto, ser criadas e destruídas sempre que os blocos em
  que estiverem definidas, forem iniciados e finalizados.
• Um array é um conjunto de espaços de memória que se
  relacionam pelo fato de que todos têm o mesmo nome e o
  mesmo tipo.
• Para se referir a um local ou elemento em particular no array,
  especificamos o nome do array e o número da posição do
  elemento em particular no array.
ARRAYS                           Nome do array
                                                              Valores
                                 [número da posição do
Um array chamado c com                                      armazenados
                              elemento dentro do array c]
12 elementos
                                         c[0]                   -45
c[0] = elemento zerésimo                 c[1]                    6
                                         c[2]                    0
c[i-1] = iésimo elemento
                                         c[3]                   72
c[índice] = índice pode ser              c[4]                  1543
um número inteiro ou uma
                                         c[5]                   -89
expressão = c[i+2] ou
c[a+b]                                   c[6]                    0
                                         c[7]                   62
                                         c[8]                   -3
                                         c[9]                    1
                                         c[10]                 6453
                                         c[11]                  78
ARRAYS
• É importante observar a diferença entre o SÉTIMO ELEMENTO
  DO ARRAY e o ELEMENTO DE ARRAY SETE. Como os índice de
  array começam em zero, o SÉTIMO ELEMENTO DO ARRAY tem
  o índice 6, enquanto o ELEMENTO DE ARRAY SETE tem o
  índice 7 e, na realidade, é o oitavo elemento do array.

• Os colchetes usados para delimitar o subscrito de um array
  são realmente considerados como um operador na linguagem
  C. Eles têm o mesmo nível de precedência do operador de
  chamada de função – parênteses.
DECLARANDO ARRAYS
• Os arrays ocupam espaço na memória. Você especifica o tipo
  de cada elemento e o número de elementos exigidos por array
  de modo que o computador possa reservar a quantidade de
  memória apropriada.

                           int c[12];

• Esta é a declaração usada para pedir ao computador que
  reserve 12 elementos para o array de inteiros C.

                       int b[100], x[27];

• Esta declaração reserva 100 elementos para o array de inteiros
  b e 27 elementos para o array de inteiros x.
O        exemplo     utiliza
Exemplos                                               estruturas       for   para
                                                       inicializar os elementos de
//inicializando um array                               um array n de 10
#include <stdio.h>                                     elementos do tipo inteiro
                                                       com zeros e imprimir o
//função main inicia a execução do programa            array em formato tabular.
int main(void)
{
  int n[10]; //n é um array de 10 inteiros
  int i; //contador
  //inicializa elementos do array n como zero
  for(i=0; i<10; i++){
      n[i]=0; //define elemento no local i como zero
  } //fim do for
  printf("%s %13s n ", "Elemento", "Valor");
  //saída na tela de conteúdo do array n em formato tabular
  for(i=0; i<10; i++){
         printf("%7d %13d n", i, n[i]);
  } //fim do for
  system("PAUSE");
  return 0; //indica conclusão bem sucedida
} //fim do main
Exemplos
//inicializando um array com uma lista de inicializadores
#include <stdio.h>
//função main inicia a execução do programa
int main(void)
                                                           Este exemplo inicializa
{                                                          um array de inteiros com
  //usa lista de inicializadores para inicializar o arry n 10 valores e imprime o
  int n[10]={32, 27, 64, 18, 95, 14, 90, 70, 60, 37};      array    em      formato
  int i;//contador                                         tabular.
  printf("%s %13 n", "Elemento", "Valor");
  //lista conteúdo do array em formato tabular
  for(i=0; i<10; i++){
      printf("%7d %13d n", i, n[i]);
  }//fim do for
  system("PAUSE");
  return 0;//indica conclusão bem sucedida
}//fim do main
DICA
• Se houver menos inicializdores que elementos no array, os
  elementos restantes serão inicializados em zero. Exemplo:

                           int n[10] = {0};

• Essa declaração inicializa explicitamente o primeiro elemento em
  zero e inicializa os nove elementos restantes em zero. Isto porque
  existem menos inicializadores que elementos no array.
• Arrays não são inicializados automaticamente em zero. É preciso,
  pelo menos, inicializar o primeiro elemento em zero para que os
  elementos restantes sejam automaticamente zerados.
• Se o tamanho do array for omitido de uma declaração com uma lista
  de inicializadores, o número de elementos no array será o número
  de elementos na lista de inicializadores.

                       Int n[] = {1, 2, 3, 4, 5};
Inicializa os elementos de um array de 10

 Exemplos                             elementos s com os valores 2, 4, 6, ..., 20 e
                                      imprime o array em formato tabular.


//inicializando elementos do array s como inteiros pares de 2 a 20
#include <stdio.h>
#define SIZE 10; //tamanho máximo do array – diretiva de pré-processador
//função main inicia a execução do programa
int main(void)
{
  //constante simbólica SIZE - pode ser usada para especificar o tamanho do array
  int s[SIZE]; //array s tem SIZE elementos
  int j;//contador
  for(j=0; j<SIZE; j++){ //define os elementos
      s[j]=2+2*j;
  } //contador
  printf("%s %13s n", "Elemento", "Valor");
  //lista de impressão do conteúdo do array s em formato tabular
  for(j=0; j<SIZE; j++){
         printf("%7d %13d n", j, s[j]);
  } //fim do for
  system("PAUSE");
  return 0; //indica conclusão bem sucedida
} //fim do main
DEFINE
• Define é uma diretiva de pré-processador que define uma
  constante simbólica.
• Um aconstante simbólica é um identificador substituído com o
  texto substituto pelo pré-processador C antes do programa ser
  compilado.
• Quando o programa é pré-processador, todas as ocorrências
  da constante simbólica são substituídas com o texto
  substituto.
• O uso de constantes simbólicas para especificar tamanhos de
  array torna os programas mais escaláveis.
Exemplos
Situação:
Foi pedido a 40 alunos que avaliassem a comida da cantina
estudantil e desse notas que fossem de 1 a 10. 1 – horrorosa
10 – excelente. Coloque as 40 respostas em um array de inteiros
e assuma os resultados da pesquisa.

Aplicação típica de arrays. O objetivo é resumir o número de
 respostas de cada tipo.
Array frequency = array de 11 elementos utilizado para contar
 o número de ocorrências de cada resposta.
Array response = array de 40 elementos com as respostas dos
 alunos.
Exemplos
//programa de pesquisa com estudantes
#include <stdio.h>
#define RESPONSE_SIZE 40 //define tamanho de array
#define FREQUENCY_SIZE 11 //define tamanho de array
//função main inicia a execução do programa
int main(void)
{
  int answer; //contador para percorrer 40 respostas
  int rating; //contador para percorrer frequencias 1-10
  //inicializa contadores de frequencia em zero
  int frequency[FREQUENCY_SIZE] = {0};
  //coloca as respostas da pesquisa no array responses
  int responses[RESPONSE_SIZE] =
{1,2,3,4,5,6,7,8,9,10,1,6,3,8,6,10,3,8,2,7,
  6,5,7,6,8,6,7,5,6,6,5,6,7,5,6,4,8,6,8,10};
Exemplos
 /* para cada resposta, seleciona valor de um elemento do array
responses e usa esse valor como índice na frequencia do array para
determinar o elemento a ser incrementado
  */
  for(answer=0; answer<RESPONSE_SIZE; answer++){
           ++frequency[responses[answer]];
  } //fim do for
  //mostra os resultados
  printf("%s %17s n", "Avaliação", "Frequencia");
  //listas de impressão das frequencias em um formato tabular
  for(rating=1; rating<FREQUENCY_SIZE; rating++){
      printf("%6d %17d n", rating, frequency[rating]);
  } //fim do for
  system("PAUSE");
  return 0;//indica conclusão bem sucedida
} //fim do main
Exemplos
Exemplos
answer          answer <RESPONSE_SIZE answer++             ++frequency[responses[answer]]
0               0 < 11 = V                    0 + 1=1      ++frequency[1]
1               1 < 11 = V                    1 + 1 =2     ++frequency[2]
2               2 < 11 = V                    2+1=3        ++frequency[6]
3               3 < 11 = V                    3+1=4        ++frequency[4]
4               4 < 11 = V                    4+1=5        ++frequency[8]



                                 Vetor = int respones[RESPONSE_SIZE];
    Posição 0        Posição 1         Posição 2         Posição 3      Posição 4     Posição 5
       1                 2                6                 4               8               5
Exemplos
//calcula a soma dos elementos do array
#include <stdio.h>
#define SIZE 12 //tamanho máximo do array
//função main inicia a execução do programa
int main(void)
{
  //usa lista inicializadora para inicializar array
  int a[SIZE]={1,3,5,4,7,2,99,16,45,67,89,45};
  int i; //contador
  int total=0; //soma do array
  for(i=0; i<SIZE; i++){
         total+=a[i];
  } //fim do for
  printf("Total de valores dos elementos do array e %d n", total, "n");
  system("PAUSE");
  return 0; //indica conclusão bem sucedida
} //fim do main
DICA
• C não tem verificação de limites de array para impedir que o
  programa se refira a um elemento que não existe.
• Um programa em execução pode ultrapassar o final de um
  array sem aviso.
• O programador deve garantir que todas as referencias de array
  permançam dentro dos limites do array.
• Ao percorrer um for por um array, o índice do array nunca
  deverá ser menor que zero, e sempre deverá ser menor que o
  número total de elementos no array (tamanho – 1)
Exercícios
1. Faça um algoritmo que receba a quantidade de peças
   vendidas por cada vendedor e armazene essas quantidades
   em um vetor. Receba também o preço da peça vendida de
   cada vendedor e armazene esses preços em outro vetor.
   Existem apenas 10 vendedores, e cada vendedor pode
   vender apenas um tipo de peça, isto é, para cada vendedor
   existe apenas um preço. Calcule e imprima a quantidade
   total de peças vendidas por todos os vendedores e, para
   cada vendedor, calcule e imprima o valor total de venda.
Exercícios
2. Faça um programa em C para ler cinco números inteiros
   quaisquer e armazená-los em um vetor A. Em seguida, criar um
   novo vetor B cujos elementos são os elementos do vetor A com
   sinal trocado. Imprima os dois vetores. Por exemplo:

          Vetor A: 5, -3, 6, 67, -10
          Vetor B: -5, 3, -6, -67, 10

3. Faça um algoritmo para ler dez números quaisquer e
   armazená-los em um vetor. Em seguida, imprimir o vetor e
   quantos elementos do vetor são positivos; quantos são
   negativos; e quantos são nulos.
Exercícios
4. Faça um algoritmo para ler a nota de prova e de trabalho de
   dez alunos. Armazenar as notas em dois vetores diferentes.
   Em seguida, calcular a média de cada aluno, armazenando-
   as em um outro vetor. Imprimir a maior e a menor média;
   quantos alunos obtiveram média igual ou superior à 7,0; e
   os três vetores.

5. Faça um algoritmo para ler cinco números inteiros quaisquer
   e armazená-los em um vetor. Em seguida, imprimir o vetor e
   quantos elementos do vetor são positivos; quantos são
   negativos; e quantos são nulos.
Exercícios
6. Faça um algoritmo para ler a idade de dez membros de
   umclube e armazená-las em um vetor. Em seguida, imprimir
   quantos membros têm idade entre 15 e 30 anos; entre 31 e 50
   anos; e entre 51 e 70 anos. Imprimir também qual dos três
   intervalos possui mais membros e o vetor.

7. Faça um algoritmo para ler a idade e o sexo de dez crianças de
   um orfanato, armazenando os dados em dois vetores. Imprimir
   a idade média das crianças; quantas crianças possuem idade
   superior a 5 anos; a porcentagem de crianças do sexo
   masculino; e quantas crianças possuem idade inferior a idade
   média.
Exercícios
8. Faça um algoritmo para ler as temperatuas registradas nos
   últimos 10 dias e armazená-las em um vetor. Em seguida,
   calcular e imprimir a maior temperatura; a temperatura média
   destes 10 dias; o número de dias em que a temperatura foi
   superior a temperatura média; e todas as temperaturas
   registradas.
9. Faça um algoritmo para preencher um vetor de 10 elementos
   inteiros colocando -1 nas posições ímpares e 0 nas posições
   pares. Em seguida, imprimir o vetor.

Weitere ähnliche Inhalte

Was ist angesagt?

Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1
engenhariadecomputacao
 

Was ist angesagt? (20)

Excel Avançado - Aulas
Excel Avançado - AulasExcel Avançado - Aulas
Excel Avançado - Aulas
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Aula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem CAula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem C
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Java script - funções
Java script - funçõesJava script - funções
Java script - funções
 
Aula 1 Excel básico
Aula 1   Excel básicoAula 1   Excel básico
Aula 1 Excel básico
 
Apresentação HTML e CSS
Apresentação HTML e CSSApresentação HTML e CSS
Apresentação HTML e CSS
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Tutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchTutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL Workbench
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01
 
Algoritmos: Tipos de Dados
Algoritmos: Tipos de DadosAlgoritmos: Tipos de Dados
Algoritmos: Tipos de Dados
 
Apostila excel basico
Apostila excel basicoApostila excel basico
Apostila excel basico
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
Excel Básico
Excel BásicoExcel Básico
Excel Básico
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1
 
Java - Primeiros passos
Java - Primeiros passosJava - Primeiros passos
Java - Primeiros passos
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Algoritmos e Programação: Estruturas de condição
Algoritmos e Programação: Estruturas de condiçãoAlgoritmos e Programação: Estruturas de condição
Algoritmos e Programação: Estruturas de condição
 

Ähnlich wie Vetores, Matrizes e Strings em C Parte 1

Aula 8 - Vetores e Matrizes.pptx
Aula 8 - Vetores e Matrizes.pptxAula 8 - Vetores e Matrizes.pptx
Aula 8 - Vetores e Matrizes.pptx
Osvano Silva
 

Ähnlich wie Vetores, Matrizes e Strings em C Parte 1 (20)

Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Java básico - Módulo 06: Array
Java básico - Módulo 06: ArrayJava básico - Módulo 06: Array
Java básico - Módulo 06: Array
 
Arrays em java
Arrays em javaArrays em java
Arrays em java
 
Trabalho vetores
Trabalho vetoresTrabalho vetores
Trabalho vetores
 
Java8
Java8Java8
Java8
 
Capítulo 6
Capítulo 6Capítulo 6
Capítulo 6
 
Estruturas de dados e técnicas de programação
Estruturas de dados e técnicas de programaçãoEstruturas de dados e técnicas de programação
Estruturas de dados e técnicas de programação
 
Linguagem c wellington telles - aula 06
Linguagem c   wellington telles - aula 06Linguagem c   wellington telles - aula 06
Linguagem c wellington telles - aula 06
 
Arrays / Vetores / Matrizes em programação
Arrays / Vetores / Matrizes em programaçãoArrays / Vetores / Matrizes em programação
Arrays / Vetores / Matrizes em programação
 
Aula 8 - Vetores e Matrizes.pptx
Aula 8 - Vetores e Matrizes.pptxAula 8 - Vetores e Matrizes.pptx
Aula 8 - Vetores e Matrizes.pptx
 
3 vetor.matriz
3 vetor.matriz3 vetor.matriz
3 vetor.matriz
 
Aprendendo objective c - parte 1
Aprendendo objective c - parte 1Aprendendo objective c - parte 1
Aprendendo objective c - parte 1
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacao
 
PHP 5.3 - Arrays
PHP 5.3 - ArraysPHP 5.3 - Arrays
PHP 5.3 - Arrays
 
Curso de PHP - Arrays
Curso de PHP - ArraysCurso de PHP - Arrays
Curso de PHP - Arrays
 
Arrays
ArraysArrays
Arrays
 
Manual PSInf - Modulo 5
Manual PSInf - Modulo 5Manual PSInf - Modulo 5
Manual PSInf - Modulo 5
 
Java 06 Strings Arrays
Java 06 Strings ArraysJava 06 Strings Arrays
Java 06 Strings Arrays
 
Ap vetores
Ap vetoresAp vetores
Ap vetores
 
Programação aula002
Programação aula002Programação aula002
Programação aula002
 

Mehr von Elaine Cecília Gatto

Mehr von Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Kürzlich hochgeladen

8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
tatianehilda
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
TailsonSantos1
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
NarlaAquino
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
HELENO FAVACHO
 

Kürzlich hochgeladen (20)

8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medio
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
Aula de jornada de trabalho - reforma.ppt
Aula de jornada de trabalho - reforma.pptAula de jornada de trabalho - reforma.ppt
Aula de jornada de trabalho - reforma.ppt
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 

Vetores, Matrizes e Strings em C Parte 1

  • 1. Programação de Computadores Aula 4 e 5 23 e 30/08/2012 Profª Ms. Engª Elaine Cecília Gatto Unidade 4: Vetores, Matrizes e Strings Curso de Bacharelado em Engenharia de Computação Universidade do Sagrado Coração – USC Bauru/SP
  • 2. ARRAYS • São estruturas de dados que consistem em itens de dados relacionados do mesmo tipo. • Arrays e estruturas são entidades estáticas porque permanecem do mesmo tamanho ao longo de toda a execução do programa. • Elas podem ser de uma classe de armazenamento automática e, portanto, ser criadas e destruídas sempre que os blocos em que estiverem definidas, forem iniciados e finalizados. • Um array é um conjunto de espaços de memória que se relacionam pelo fato de que todos têm o mesmo nome e o mesmo tipo. • Para se referir a um local ou elemento em particular no array, especificamos o nome do array e o número da posição do elemento em particular no array.
  • 3. ARRAYS Nome do array Valores [número da posição do Um array chamado c com armazenados elemento dentro do array c] 12 elementos c[0] -45 c[0] = elemento zerésimo c[1] 6 c[2] 0 c[i-1] = iésimo elemento c[3] 72 c[índice] = índice pode ser c[4] 1543 um número inteiro ou uma c[5] -89 expressão = c[i+2] ou c[a+b] c[6] 0 c[7] 62 c[8] -3 c[9] 1 c[10] 6453 c[11] 78
  • 4. ARRAYS • É importante observar a diferença entre o SÉTIMO ELEMENTO DO ARRAY e o ELEMENTO DE ARRAY SETE. Como os índice de array começam em zero, o SÉTIMO ELEMENTO DO ARRAY tem o índice 6, enquanto o ELEMENTO DE ARRAY SETE tem o índice 7 e, na realidade, é o oitavo elemento do array. • Os colchetes usados para delimitar o subscrito de um array são realmente considerados como um operador na linguagem C. Eles têm o mesmo nível de precedência do operador de chamada de função – parênteses.
  • 5. DECLARANDO ARRAYS • Os arrays ocupam espaço na memória. Você especifica o tipo de cada elemento e o número de elementos exigidos por array de modo que o computador possa reservar a quantidade de memória apropriada. int c[12]; • Esta é a declaração usada para pedir ao computador que reserve 12 elementos para o array de inteiros C. int b[100], x[27]; • Esta declaração reserva 100 elementos para o array de inteiros b e 27 elementos para o array de inteiros x.
  • 6. O exemplo utiliza Exemplos estruturas for para inicializar os elementos de //inicializando um array um array n de 10 #include <stdio.h> elementos do tipo inteiro com zeros e imprimir o //função main inicia a execução do programa array em formato tabular. int main(void) { int n[10]; //n é um array de 10 inteiros int i; //contador //inicializa elementos do array n como zero for(i=0; i<10; i++){ n[i]=0; //define elemento no local i como zero } //fim do for printf("%s %13s n ", "Elemento", "Valor"); //saída na tela de conteúdo do array n em formato tabular for(i=0; i<10; i++){ printf("%7d %13d n", i, n[i]); } //fim do for system("PAUSE"); return 0; //indica conclusão bem sucedida } //fim do main
  • 7. Exemplos //inicializando um array com uma lista de inicializadores #include <stdio.h> //função main inicia a execução do programa int main(void) Este exemplo inicializa { um array de inteiros com //usa lista de inicializadores para inicializar o arry n 10 valores e imprime o int n[10]={32, 27, 64, 18, 95, 14, 90, 70, 60, 37}; array em formato int i;//contador tabular. printf("%s %13 n", "Elemento", "Valor"); //lista conteúdo do array em formato tabular for(i=0; i<10; i++){ printf("%7d %13d n", i, n[i]); }//fim do for system("PAUSE"); return 0;//indica conclusão bem sucedida }//fim do main
  • 8. DICA • Se houver menos inicializdores que elementos no array, os elementos restantes serão inicializados em zero. Exemplo: int n[10] = {0}; • Essa declaração inicializa explicitamente o primeiro elemento em zero e inicializa os nove elementos restantes em zero. Isto porque existem menos inicializadores que elementos no array. • Arrays não são inicializados automaticamente em zero. É preciso, pelo menos, inicializar o primeiro elemento em zero para que os elementos restantes sejam automaticamente zerados. • Se o tamanho do array for omitido de uma declaração com uma lista de inicializadores, o número de elementos no array será o número de elementos na lista de inicializadores. Int n[] = {1, 2, 3, 4, 5};
  • 9. Inicializa os elementos de um array de 10 Exemplos elementos s com os valores 2, 4, 6, ..., 20 e imprime o array em formato tabular. //inicializando elementos do array s como inteiros pares de 2 a 20 #include <stdio.h> #define SIZE 10; //tamanho máximo do array – diretiva de pré-processador //função main inicia a execução do programa int main(void) { //constante simbólica SIZE - pode ser usada para especificar o tamanho do array int s[SIZE]; //array s tem SIZE elementos int j;//contador for(j=0; j<SIZE; j++){ //define os elementos s[j]=2+2*j; } //contador printf("%s %13s n", "Elemento", "Valor"); //lista de impressão do conteúdo do array s em formato tabular for(j=0; j<SIZE; j++){ printf("%7d %13d n", j, s[j]); } //fim do for system("PAUSE"); return 0; //indica conclusão bem sucedida } //fim do main
  • 10. DEFINE • Define é uma diretiva de pré-processador que define uma constante simbólica. • Um aconstante simbólica é um identificador substituído com o texto substituto pelo pré-processador C antes do programa ser compilado. • Quando o programa é pré-processador, todas as ocorrências da constante simbólica são substituídas com o texto substituto. • O uso de constantes simbólicas para especificar tamanhos de array torna os programas mais escaláveis.
  • 11. Exemplos Situação: Foi pedido a 40 alunos que avaliassem a comida da cantina estudantil e desse notas que fossem de 1 a 10. 1 – horrorosa 10 – excelente. Coloque as 40 respostas em um array de inteiros e assuma os resultados da pesquisa. Aplicação típica de arrays. O objetivo é resumir o número de respostas de cada tipo. Array frequency = array de 11 elementos utilizado para contar o número de ocorrências de cada resposta. Array response = array de 40 elementos com as respostas dos alunos.
  • 12. Exemplos //programa de pesquisa com estudantes #include <stdio.h> #define RESPONSE_SIZE 40 //define tamanho de array #define FREQUENCY_SIZE 11 //define tamanho de array //função main inicia a execução do programa int main(void) { int answer; //contador para percorrer 40 respostas int rating; //contador para percorrer frequencias 1-10 //inicializa contadores de frequencia em zero int frequency[FREQUENCY_SIZE] = {0}; //coloca as respostas da pesquisa no array responses int responses[RESPONSE_SIZE] = {1,2,3,4,5,6,7,8,9,10,1,6,3,8,6,10,3,8,2,7, 6,5,7,6,8,6,7,5,6,6,5,6,7,5,6,4,8,6,8,10};
  • 13. Exemplos /* para cada resposta, seleciona valor de um elemento do array responses e usa esse valor como índice na frequencia do array para determinar o elemento a ser incrementado */ for(answer=0; answer<RESPONSE_SIZE; answer++){ ++frequency[responses[answer]]; } //fim do for //mostra os resultados printf("%s %17s n", "Avaliação", "Frequencia"); //listas de impressão das frequencias em um formato tabular for(rating=1; rating<FREQUENCY_SIZE; rating++){ printf("%6d %17d n", rating, frequency[rating]); } //fim do for system("PAUSE"); return 0;//indica conclusão bem sucedida } //fim do main
  • 15. Exemplos answer answer <RESPONSE_SIZE answer++ ++frequency[responses[answer]] 0 0 < 11 = V 0 + 1=1 ++frequency[1] 1 1 < 11 = V 1 + 1 =2 ++frequency[2] 2 2 < 11 = V 2+1=3 ++frequency[6] 3 3 < 11 = V 3+1=4 ++frequency[4] 4 4 < 11 = V 4+1=5 ++frequency[8] Vetor = int respones[RESPONSE_SIZE]; Posição 0 Posição 1 Posição 2 Posição 3 Posição 4 Posição 5 1 2 6 4 8 5
  • 16. Exemplos //calcula a soma dos elementos do array #include <stdio.h> #define SIZE 12 //tamanho máximo do array //função main inicia a execução do programa int main(void) { //usa lista inicializadora para inicializar array int a[SIZE]={1,3,5,4,7,2,99,16,45,67,89,45}; int i; //contador int total=0; //soma do array for(i=0; i<SIZE; i++){ total+=a[i]; } //fim do for printf("Total de valores dos elementos do array e %d n", total, "n"); system("PAUSE"); return 0; //indica conclusão bem sucedida } //fim do main
  • 17. DICA • C não tem verificação de limites de array para impedir que o programa se refira a um elemento que não existe. • Um programa em execução pode ultrapassar o final de um array sem aviso. • O programador deve garantir que todas as referencias de array permançam dentro dos limites do array. • Ao percorrer um for por um array, o índice do array nunca deverá ser menor que zero, e sempre deverá ser menor que o número total de elementos no array (tamanho – 1)
  • 18. Exercícios 1. Faça um algoritmo que receba a quantidade de peças vendidas por cada vendedor e armazene essas quantidades em um vetor. Receba também o preço da peça vendida de cada vendedor e armazene esses preços em outro vetor. Existem apenas 10 vendedores, e cada vendedor pode vender apenas um tipo de peça, isto é, para cada vendedor existe apenas um preço. Calcule e imprima a quantidade total de peças vendidas por todos os vendedores e, para cada vendedor, calcule e imprima o valor total de venda.
  • 19. Exercícios 2. Faça um programa em C para ler cinco números inteiros quaisquer e armazená-los em um vetor A. Em seguida, criar um novo vetor B cujos elementos são os elementos do vetor A com sinal trocado. Imprima os dois vetores. Por exemplo: Vetor A: 5, -3, 6, 67, -10 Vetor B: -5, 3, -6, -67, 10 3. Faça um algoritmo para ler dez números quaisquer e armazená-los em um vetor. Em seguida, imprimir o vetor e quantos elementos do vetor são positivos; quantos são negativos; e quantos são nulos.
  • 20. Exercícios 4. Faça um algoritmo para ler a nota de prova e de trabalho de dez alunos. Armazenar as notas em dois vetores diferentes. Em seguida, calcular a média de cada aluno, armazenando- as em um outro vetor. Imprimir a maior e a menor média; quantos alunos obtiveram média igual ou superior à 7,0; e os três vetores. 5. Faça um algoritmo para ler cinco números inteiros quaisquer e armazená-los em um vetor. Em seguida, imprimir o vetor e quantos elementos do vetor são positivos; quantos são negativos; e quantos são nulos.
  • 21. Exercícios 6. Faça um algoritmo para ler a idade de dez membros de umclube e armazená-las em um vetor. Em seguida, imprimir quantos membros têm idade entre 15 e 30 anos; entre 31 e 50 anos; e entre 51 e 70 anos. Imprimir também qual dos três intervalos possui mais membros e o vetor. 7. Faça um algoritmo para ler a idade e o sexo de dez crianças de um orfanato, armazenando os dados em dois vetores. Imprimir a idade média das crianças; quantas crianças possuem idade superior a 5 anos; a porcentagem de crianças do sexo masculino; e quantas crianças possuem idade inferior a idade média.
  • 22. Exercícios 8. Faça um algoritmo para ler as temperatuas registradas nos últimos 10 dias e armazená-las em um vetor. Em seguida, calcular e imprimir a maior temperatura; a temperatura média destes 10 dias; o número de dias em que a temperatura foi superior a temperatura média; e todas as temperaturas registradas. 9. Faça um algoritmo para preencher um vetor de 10 elementos inteiros colocando -1 nas posições ímpares e 0 nas posições pares. Em seguida, imprimir o vetor.