Professor: Gabriel Soares Baptista
while, for e do-while.break/continue.\0.<string.h> para manipulação de texto.A repetição por condição permite que um bloco de instruções seja executado repetidamente enquanto uma determinada condição permanecer verdadeira.
A lógica fundamental é: "enquanto uma condição for válida, faça a sequência de comandos".
Um laço infinito (infinite loop) ocorre quando a condição de parada nunca é satisfeita. Isso geralmente acontece por:
X = 4;
enquanto (X < 5) faca
X = X - 1; // X diminui sempre, nunca chegará a 5
Imprima X;
fim enquanto
O programa consumirá processamento sem nunca concluir a tarefa.
while e do-whilewhileTesta a condição antes de executar o bloco. Se for falsa inicialmente, o bloco nunca é executado.
while (condição) {
// comandos
}
do-whileExecuta o bloco pelo menos uma vez, testando a condição apenas ao final.
do {
// comandos
} while (condição); // ; obrigatório
forProjetado para condensar inicialização, condição e incremento em uma única linha.
for (inicialização; condição; incremento) {
sequência de comandos;
}
for:for (; a <= b; a++), desde que os ; permaneçam.for (i=0, j=10; i < j; i++, j--).break e continuebreak: Interrompe o laço imediatamente e salta para fora da estrutura de repetição.continue: Interrompe apenas a iteração atual, saltando direto para o teste da próxima repetição.for para imprimir todos os números inteiros de 1 a 20 na tela.while para exibir uma contagem regressiva de 10 até 0. Ao final, imprima a mensagem "FIM!".do-while para pedir uma nota entre 0.0 e 10.0. Repita até que uma nota válida seja inserida.A e B (A < B). Use for para imprimir apenas os números pares no intervalo.*) com lado N informado pelo usuário.N e imprima as N primeiras linhas do Triângulo de Floyd.N primeiros termos da sequência de Fibonacci (0, 1, 1, 2, 3, 5...).As variáveis simples armazenam apenas um valor. Para gerenciar, por exemplo, 100 notas de alunos, seriam necessárias 100 variáveis individuais, o que é inviável.
O Array permite:
A declaração segue o formato: tipo_dado nome[tamanho];.
O índice começa sempre em ZERO e termina em N-1.
float notas[5];
notas[0] = 8.5;
notas[1] = 7.0;
// ...
notas[4] = 9.2;
Tentar acessar notas[5] em um vetor de tamanho 5 resultará em acesso a memória inválida.
Utilizadas para organizar dados em linhas e colunas.
int mat[3][2]; // 3 linhas e 2 colunas
Para percorrer uma matriz, utilizamos laços aninhados:
for (i = 0; i < linhas; i++) {
for (j = 0; j < colunas; j++) {
scanf("%d", &mat[i][j]);
}
}
Podemos atribuir valores no momento da declaração usando chaves {}.
int v[3] = {10, 20, 30};
int m[2][2] = {{1, 2}, {3, 4}};
int v[] = {1, 2, 3}; define o tamanho como 3 automaticamente.{10, 20, 30, 40, 50} e imprima o valor da terceira posição (índice 2).X está presente em um vetor de 10 posições e informe seu índice.A e B, gere um vetor C onde C[i] = A[i] + B[i].C = A * B.Uma string é um array de caracteres (char).
Diferença vital: O caractere nulo \0 deve ser o último elemento para marcar o fim do texto.
\0, funções de texto lerão "lixo de memória" após a palavra.A leitura de strings exige cuidado com espaços e buffers.
| Função | Comportamento |
|---|---|
scanf("%s", str) |
Interrompe a leitura no primeiro espaço. |
gets(str) |
Lê frases completas, mas é perigosa (sem limite de tamanho). |
fgets(str, tam, stdin) |
Recomendada. Limita o tamanho e é segura. |
Use setbuf(stdin, NULL) antes da leitura para evitar que resíduos do teclado (como o 'Enter') pulem o comando de entrada.
<string.h>Ferramentas fundamentais para manipular textos:
strlen(s): Retorna o tamanho real da string (caracteres antes do \0).strcpy(dest, orig): Copia o conteúdo de uma string para outra.strcat(dest, orig): Concatena (anexa) a origem ao final do destino.strcmp(s1, s2): Compara strings. Retorna 0 se forem exatamente iguais.A função strcmp diferencia maiúsculas de minúsculas. "Lógica" e "lógica" são diferentes.
fgets e exiba-a.strlen.strcat para juntá-las com um espaço entre elas.str1 para str2 usando strcpy.strcmp.strlen, conte manualmente quantos caracteres uma string possui percorrendo o array.No próximo capítulo, estudaremos Funções: