Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
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 ímpares e 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