linguagem c marco reis. processo de desenvolvimento escrever código-fonte. compilar. executar....

25
Linguagem C Marco Reis

Upload: internet

Post on 17-Apr-2015

109 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

Linguagem CMarco Reis

Page 2: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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 (//).

Page 3: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

Código-fonte

• Vamos começar: crie sempre um projeto no Dev (CursoDeLinguagemC).

• Adicione um arquivo chamado Programa1.c

Page 4: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

Método main

• Todo programa deve ter um método main.• Edite Programa1.c da seguinte maneira:

int main(){

return 0;

}

Page 5: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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”;

Page 6: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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;

}

Page 7: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

Identação

• Deve ser feita com dois ou quatro espaços a partir da esquerda.

Page 8: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

Operações

• Representadas pelos caracteres “+”, “-”, “*”, “/”, “%”, “++” e “--”.

//

int outroValorInteiro = 20;

int resultadoInteiro = valorInteiro + outroValorInteiro;

float resultadoComPrecisao = valorFloat / 3;

Page 9: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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.

Page 10: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

Formatos

• Pesquise os demais formatos da linguagem.

Page 11: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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");

}

Page 12: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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);

}

Page 13: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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");

}

Page 14: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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++;

}

Page 15: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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);

}

Page 16: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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);

}

Page 17: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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]);

}

Page 18: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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”.

Page 19: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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.

Page 20: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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.

Page 21: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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.

Page 22: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

Atividade 4

• Pesquise bibliotecas gráficas disponíveis para C.

• Indique o fabricante, mostre screenshots e discorra sobre as principais vantagens.

Page 23: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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.

Page 24: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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.

Page 25: Linguagem C Marco Reis. Processo de desenvolvimento Escrever código-fonte. Compilar. Executar. Editar o fonte e adicionar os novos blocos de código. Testar

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.