Upload
internet
View
111
Download
0
Embed Size (px)
Citation preview
Linguagem CMarco Reis
Processo de desenvolvimento
• Escrever código-fonte.• Compilar.• Executar.• Editar o fonte e adicionar os novos blocos de
código.• Testar vários valores diferentes (sempre) e
anotar suas observações com comentários (//).
Código-fonte
• Vamos começar: crie sempre um projeto no Dev (CursoDeLinguagemC).
• Adicione um arquivo chamado Programa1.c
Método main
• Todo programa deve ter um método main.• Edite Programa1.c da seguinte maneira:
int main(){
return 0;
}
Variáveis
• Principais tipos de dados:– int valorInteiro = 100;– long valorLong = 99999;– float valorFloat = 99999.9;– double valorDouble = 99999.8;– char letra = 'a';– char palavra[10] = “Marco”;
Ou seja...
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main() {
//
int valorInteiro = 10;
long valorLong = 99999;
//
float valorFloat = 10.9;
double valorDouble = 99999.8;
//
char letra = 'a';
char palavra[20] = "Marco Antonio";
//
return 0;
}
Identação
• Deve ser feita com dois ou quatro espaços a partir da esquerda.
Operações
• Representadas pelos caracteres “+”, “-”, “*”, “/”, “%”, “++” e “--”.
//
int outroValorInteiro = 20;
int resultadoInteiro = valorInteiro + outroValorInteiro;
float resultadoComPrecisao = valorFloat / 3;
Funções Básicas da Linguagem
• Impressão de dados na saída:
//
printf("Alguma mensagem.\n");
printf("Valores: %d.\n", valorInteiro);
printf("Valores: %d, %c, %f.\n", valorInteiro, letra, valorFloat);
• Leitura de dados:
//
scanf("%c", letra);
scanf("%d", valorInteiro);
scanf("%s", palavra);
• Dependendo da versão do compilador, utilize o operador de endereço de memória, por exemplo: &letra ou &valorInteiro.
Formatos
• Pesquise os demais formatos da linguagem.
Estrutura Condicional
• Atenção especial para a identação. //
if (valorInteiro < 10) {
printf("Menor que 10\n");
}
//
if (valorInteiro < 10 && valorInteiro > 5) {
printf("Menor que 10 e maior que 5\n");
}
//
if (valorInteiro < 10 && valorInteiro > 5) {
printf("Menor que 10 e maior que 5\n");
} else {
printf("Nao satisfaz a(s) condicao(oes)\n");
}
//
if (letra == 'a') {
printf("Letra 'a'\n");
} else {
printf("Nao eh a letra 'a'\n");
}
for
• O laço for tem três parâmetros – início, condição de saída e incremento.
• Todos os parâmetros são opcionais.
//
int i;
for (i = 0; i < 10; i++) {
printf("Valor do i:%d\n", i);
}
for aninhado
• Analise com cuidado a saída deste programa. Modifique os valores e veja o que se passa.
//
for (i = 0; i < 100; i++) {
printf("Valor de i: %d\n", i);
printf("-------------------\n");
for (j = 0; j < 10; j++) {
printf("Valor de j: %d\n", j);
}
printf("xxxxxxxxxxxxx\n");
}
while
• Funciona exatamente como o for, mas a inicialização e incremento ficam em pontos diferentes.
//
int j = 0;
while (j < 10) {
printf("Valor do J:%d\n", j);
j++;
}
break
• Edite o laço for e acrescente o break. Analise o resultado.
//
int i;
for (i = 0; i < 10; i++) {
if(i == 5) {
break;
}
printf("Valor do i:%d\n", i);
}
continue
• Edite o laço for e acrescente o continue. Analise o resultado.
//
int i;
for (i = 0; i < 10; i++) {
if(i == 5) {
continue;
}
printf("Valor do i:%d\n", i);
}
Matrizes
• As matrizes devem ser utilizadas associadas em um loop.
• A expressão sizeof(valores) / 4 retorna o tamanho do array. Este tipo de estrutura ajuda na portabilidade da aplicação.
//
int valores[5];
srand(time(0));
for (i = 0; i < sizeof(valores) / 4; i++) {
valores[i] = rand() % 10;
}
//
for (i = 0; i < sizeof(valores) / 4; i++) {
printf("Valor aleatorio da posicao %d: %d\n", i, valores[i]);
}
Atividade 1
• Adicione o arquivo Atividades1.c ao projeto.• Crie o método main• Implemente os seguintes blocos de código (cada item é um bloco):
– Crie as variáveis nome, idade, altura, peso, sexo (m/f), ehEstudante (1/0).– Atribua valores hipotéticos.– Imprima os valores dessas variáveis.– Imprima se a idade é par ou ímpar.– Imprima o sexo por extenso (masculino/feminino).– Imprima o IMC.– Imprima “Voce eh alto” se maior que 1.80, “Voce eh mediano” entre 1.79 / 1.65
e “Voce esta abaixo da media” se não estiver nos intervalos.– Imprima o nome mais “, voce tem que estudar mais” se for estudante e o
nome mais “Voce tem que estudar muito mais” se não for estudante.– Imprima “Maior de idade” ou “Menor de idade”.– Imprima “O senhor tem {idade} anos” ou “A senhora tem {idade} anos”.
Atividade 2
• Atividade2.c (todas as atividades com loop devem ser feitas com for e while).– Crie um loop que vá de 1 a 100 e imprima o índice.– Crie um loop que vá de 10 a 9, imprima o índice.– Crie um loop de 1 a 10 e imprima o índice. Páre o loop quando chegar em 5.– Crie um loop de 20 a 10 e imprima o índice. Pule o valor 12.– Crie um loop de 1 a 100 que só imprima quando o índice for 1, 10, 20, 30.– Crie um loop de 1 a 100 que só imprima quando o índice for par.– Crie um loop de 1 a 100 que só imprima quando o índice for múltiplo de 5.– Crie um loop de 1 a 100 que durma por ¼ de segundo.– Crie um loop de 1 a 100. Dentro deste, crie outro de 1 a 10. Imprima se o
índice é par ou ímpar. Formate a mensagem para que seja completa e clara.– Crie um loop de 1 a 10 e dentro outro de 10 a 1. Imprima somente se os
índices forem iguais.– Crie um loop infinito que mostre a hora atual do sistema. Formatada, claro.
Atividade 3
• Atividade3.c:– Crie um programa com as seguintes variáveis: nomeDoAluno, disciplina
e nota.– Solicite que o usuário informe os valores.– Imprima todos os valores informados pelo usuário com o cabeçalho
“Notas do aluno {nome}”.– Imprima se o aluno foi aprovado ou reprovado na disciplina.– Se o aluno for reprovado pergunte se ele deseja uma segunda chance
(s/n). – Caso positivo, solicite que o usuário informe a nova nota e substitua a
nota anterior.– Imprima de novo os dados corrigidos com o cabeçalho “Notas do aluno
{nome} após a recuperação”.– Pergunte ao usuário se ele deseja incluir as notas para outro aluno (s/n).
caso negativo, informe que o programa acabou. Caso positivo, reinicie o processo.
Desafio
• Altere o programa anterior.• O usuário deverá obrigatoriamente informar as notas
de 5 alunos.• Depois de informar as notas individuais de cada um
dos alunos, mostre um relatório sobre a nota da turma.– Média dos alunos, maior nota, menor nota.
• Pergunte ao usuário se deseja informar as notas para outra disciplina.
• Informe a nota média dos alunos em todas as disciplinas.
Atividade 4
• Pesquise bibliotecas gráficas disponíveis para C.
• Indique o fabricante, mostre screenshots e discorra sobre as principais vantagens.
Atividade 5
• Crie um jogo de loteria.• O usuário deve informar dois números inteiros
menores que 10.• O programa deve gerar dois números aleatórios
menores que 10.• Informe ao usuário se ele ganhou.• Desafio:
– Atualize o jogo para que tenha 5 números sorteados.– O usuário irá, então, informar 5 números. – Informe quantos e quais números o usuário acertou.
Atividade 6
• Faça um programa que gere as letras do alfabeto aleatoriamente.
• O programa irá mostrar a letra gerada e solicita ao usuário que digite esta letra.
• Quando o usuário informar uma letra errada o programa se encerra e mostra uma mensagem.
• Desafio:– Verificar quanto tempo o usuário demorou para digitar a
letra.– Se o tempo for maior que 1 segundo, ele perde.– Desafio master:
• Depois da 10a. letra diminuir o tempo gradativamente.
Observações gerais
• Resolva UM problema de cada vez.• O código deve estar identado. • Código não identado está automaticamente errado.• Todos os blocos devem estar organizados e
separados por uma linha (ao menos) comentada.• As entradas de usuário devem ter uma instrução clara
do que o usuário pode ou não digitar.• Todas as mensagens devem ser claras.• Atenção especial aos padrões. Programação pode ser
mais simples se observarmos os padrões já definidos.