Buscar

Laços, Arrays e Matrizes em C

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 44 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 44 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 44 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Bruno Jurkovski
Fábio da Fontoura Beltrão
Felipe Augusto Chies
Kauê Soares da Silveira
Lucas Fialho Zawacki
Marcos Vinicius Cavinato
Revisão Aula 1
Nós já vimos:
� Escrever/Ler dados - printf() e scanf();
� Lembrar de usar ‘&’ no scanf (menos para String’s)
� Tipos de variáveis(int, char, float, double.
String[Hoje]);
� If – else
� If Encadeado
� Switch
Revisão Aula 1
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
main(){
int ops, numero;
char letra1, letra2;
printf ("Selecione uma opcao: \n\n");
printf ("1. Verificar se numero e negativo ou igual a 0\n");
printf ("2. Verificar se duas letras sao iguais\n");
printf ("3. Sair\n\n");
printf ("Opcao: ");
scanf("%d",&ops);
switch(ops){
case 1: 
printf ("\n\n Digite um numero inteiro: ");
scanf ("%d",&numero);
if (numero < 0)
printf ("\nO numero %d e menor que 0", numero);
else
if (numero == 0)
printf ("\nO numero %d e igual a 0", numero);
else
printf ("\nO numero %d maior que 0", numero);
break;
case 2:
printf ("\n\nDigite uma letra: ");
fflush(stdin);
scanf ("%c", &letra1);
printf ("Digite outra letra: ");
fflush(stdin);
scanf ("%c", &letra2); 
if (letra1 == letra2)
printf ("\n\nA letra %c e igual a letra %c",letra1, letra2);
else
printf ("\n\nA letra %c e diferente da letra %c", letra1, letra2);
break;
case 3:
exit(0);
} // fecha o switch
printf ("\n\nDigite alguma tecla para sair!");
getch();
} // fecha o main
Hoje Veremos:
� Laços Iterativos
�While
�For
�Do-while
� Break
�Continue
� Array
�Matrizes
� String
Laços são úteis para executar várias
vezes a mesma tarefa. Veremos os laços:
�While
� Do - while
� For
Laços Iterativos
� O laço é executado enquanto uma 
expressão FOR VERDADEIRA!
�Sua forma geral é:
while (expressão){
declaração;
}
While
�Exemplo:
While
�Saída:
While
� É uma generalização do comando while
� Sua forma geral é:
for (inicialização; condição; incremento) 
declaração;
Usado quando sabe-se quando o laço
vai terminar
For
�Exemplo:
For
�Saída:
For
� O do-while executa o laço antes de testar a 
condição. Assim, garante-se que o laço é
executado pelo menos uma vez.
� Sua forma geral é:
do
{
declaração;
} while (condição);
Do - while
� Exemplo:
Do - while
� Saída:
Do - while
� Receber entradas de inteiros do teclado até que seja 
recebido o valor 0.
� Caso um valor negativo seja recebido, retornar mensagem de 
erro ao usuário e aguardar um valor válido (positivo). 
� Ao final, dizer a soma dos números válidos, o maior e o 
menor (menor valor maior que 0) valor válidos digitados.
�Qual será o melhor laço para este programa???
Exercício
� Há dois usos para o comando break:
o Quebrar execução de um comando
o Interromper a execução de um loop
� O break faz com que a execução do programa 
continue na primeira linha seguinte ao loop ou 
ao bloco que está sendo interrompido
Não é considerado um bom hábito de programação
usar break fora do switch! 
Break
� O comando break é muito importante quando 
o comando switch for utilizado. Por exemplo:
Break
� O comando break é muito importante quando 
o comando switch for utilizado. Por exemplo:
� Saída:
Break
� Saída:
Break
� Exemplo 2:
Break
Break
� O comando continue faz com que o loop 
passe para a próxima iteração.
o continue X for: controle do programa 
passa para a fase incremento
o continue X while: controle do programa 
passa para o teste
o continue X do-while: controle do programa 
passa para o teste
Continue
� Exemplo
Continue
� Exemplo
� Saída:
Continue
� Arrays são matrizes unidimensionais(vetores)
� Possuem elementos de mesmo tipo de dado
� Para declará- los, a forma geral é:
tipo_elementos nome_variável[tamanho_array];
Ex: int vetor_de_int[10];
� Desta forma, o compilador reserva memória 
suficiente para armazenar o número de elementos 
especificados em tamanho_array
Arrays
� Em C, a numeração começa sempre em 0.
� Exemplo:
� Para acessá-los, escrevemos:
� Porém, nada impede que se escreva
Arrays
� O C não verifica se o índice que você usou está
dentro dos limites válidos. Isso faz com que se 
corra o risco, por exemplo, de ter variáveis 
sobrescritas ou de acessar posições inválidas de 
memória e causar erro de execução.
Ex: int exemplo[10];
scanf(“%d”,&exemplo[12]); 
Arrays
� Inicialização:
� A inicialização de arrays pode ser feita da 
mesma forma como eram inicializadas as 
demais variáveis:
tipo_var nome_var [tam] = {lista_valores};
� A lista de valores é composta por valores do 
mesmo tipo da variável separados por vírgula.
Arrays
� Exemplo:
� Caso hajam menos valores do que os que 
foram declarados, o array é preenchido com 
zeros. 
Arrays
� Pode não ser definido o tamanho do vetor e neste 
caso, o array assume o tamanho do número de 
elementos que forem inicializados.
� Exemplo:
� O vetor terá tamanho 3.
Curso de C – aula 3 - PET Computação
Arrays
Matrizes
� Em C podemos ter matrizes de muitas 
dimensões(tantas quantas o compilador suportar);
� A declaração é feita da seguinte forma:
tipo_elementos nom_varl[tam][tam][tam]...;
� Ex.: int matriz[10][10][10]
� Esta matriz poderá guardar 10*10*10 = 1000 
valores
Matrizes
� Não costuma usar- se matrizes maiores do que 3 
dimensões, pois ocupa muita memória.
� Exemplo de preenchimento de uma matriz 
bidimensional:
#define TAM 10 // Definindo uma constante
#include <stdio.h>
#include <conio.h>
int main(){
int matriz[TAM][TAM]; //Declarando uma matriz 10x10
int acumulador=0;
for(int i = 0 ; i < TAM ; i++)
for(int j = 0 ; j < TAM ; j++){
matriz[i][j] = acumulador;
acumulador++;
}
for(int i=0 ; i < TAM ; i++){
printf("\n");
for(int j = 0 ; j < TAM ; j++)
printf("%d ", matriz[i][j]);
}
getch();
return 0; 
}
#define TAM 10 // Definindo uma constante
#include <stdio.h>
#include <conio.h>
int main(){
int matriz[TAM][TAM]; //Declarando uma matriz 10x10
int acumulador=0;
for(int i = 0 ; i < TAM ; i++)
for(int j = 0 ; j < TAM ; j++){
matriz[i][j] = acumulador;
acumulador++;
} Saída:
for(int i=0 ; i < TAM ; i++){
printf("\n");
for(int j = 0 ; j < TAM ; j++)
printf("%d ", matriz[i][j]);
}
getch();
return 0; 
}
Strings
� A linguagem C não possui o tipo string. Entende- se 
string como um array de caracteres.
� O final da string é marcada por um ‘\0’, que é
colocado automaticamente pelo compilador, 
portanto, para declarar um array para 10 letras, ele 
deve possuir tamanho 11
� Ex.: JUCA em uma string:
� char palavra[5] - > [‘J’][‘U’][‘C’][‘A’][‘\0’]
Três maneiras:
1. char nome[10] = “Ana”;
Insere Ana na posição 0, 1 e 2 e ‘\0’ na 3.
O Restante fica com zeros.
2. char nome[10] = {‘A’ , ‘n’ , ‘a’};
Parecido com o de cima
3. char nome[] = “Ana”
String já fica com tamanho 4(A , n , a , \0)
Strings - Inicialização
Strings – Leitura/Escrita
� Leitura:
scanf: usa- se %s e NÃO usa- se &
Ex.: scanf(“%s”, variavel);
Problema: Lê até encontrar um espaço em branco.
James Malávis, seria lido apenas como James
gets: Lê a palavra inteira.
Ex.: gets(variavel);
Strings – Leitura/Escrita
� Escrita:
printf: usa- se %s
Ex.: printf(“%s”, variavel);
puts: Similar ao gets.
Ex.: puts(variavel);
Strings
Obs.: Como string não é um tipo base, não pode- se 
atribuir uma string à outra.
Strings - Manipulação
Funções da biblioteca STRING.H (#include <string.h>)
� strcopy
Copia uma string em outra.
Formato: strcpy (string_destino , string_origem);
� strcat
Origem é anexada ao final da destino.
Formato: strcat (string_destino , string_origem);
Strings - Manipulação
� strlen
Retorna o tamanho da string(sem contar o ‘\0’).
Formato: strlen(string);
� strcmp
Compara duas strings(per ordem alfabética), caractere
por caractere e retorna:
1 - se a primeira for ‘maior’ que a segunda 
0 - se forem exatamente iguais
- 1 - se a segunda for maior que a primeira
Formato: strcmp(string 1, string 2);
� Fazer um programa que dado um array com 10 
valores some os valores ímparese apresentar 
a soma quando o laço for encerrado.
� Também deve ser impresso o vetor na ordem 
normal e na ordem inversa.
Curso de C – aula 3 - PET Computação
Exercício

Outros materiais