Popular Posts

segunda-feira, 31 de janeiro de 2011

Tutorial - Programação Básica / C++


Programação Básica:

Variáveis: São espaços físicos reservados na memória para receber algum valor, caracter ou dado, sua declaração é conforme o tipo de dado que precisa ser armazenado, logo depois, o nome da variável, ex:

Declaração de uma variável do tipo inteiro:

int num; // declaração de uma variável inteira, ela recebe números como 1, 2, 3 …..

Declaração de uma variável do tipo real:

float notas; // declaração de uma variável flutuante ou de números fracionais como 2,50; 80,789….

Declaração de uma variável do tipo caracter:

char caracter; // declaração de uma variável caracter, que recebe uma letra ou caracter alfanumérico.

A função printf (função escreva): Deve ser usada quando há necessidade de imprimir mensagens na tela do monitor. Sua manipulação deve ser da seguinte forma, quando se quer apenas imprimir algo na tela:

printf (“mensagem de exemplo”); // exibe uma mensagem na tela do monitor.

Quando se tem a necessidade de jogar o valor de variável ou algo assim na tela, deve-se fazer o acréscimo de formatações de tipo como %d (para inteiro), %c (para caracter), %s (para string), %f (para float), etc. e logo depois que terminar a sua frase entre aspas, deve se colar ”,” e colocar as variáveis seguidas de virgula cada uma que deseja mostrar na tela, ex:

printf (“\n\n o resultado da soma e: %d ”, total); // exibe mensagem no monitor mostrando dados de variável.

Onde a variável “total” armazena o valor de uma soma que você quer imprimir na tela.

A função scanf (função leia): Deve ser usada quando há necessidade de ler ou receber um caracter do teclado.

Sua manipulação deve ser da seguinte forma:

scanf (“%d”, & x); // recebe um valor ou algum dado digitado do teclado

Onde “%d” é o tipo de dado que irá ser recolhido do teclado, como int, float, etc, “&” comando necessário para gravar na memória, e “x” é a variável de memória onde será guardado o valor digitado pelo teclado.

O Laço if: É um laço de decisão(a estrutura se), onde através de uma condição tomara uma ou outra decisão dependendo da semântica do programa e do dado recebido para fazer essa decisão.

Deve ser utilizado quando se tem duas ou poucas mais alternativas, se sua estrutura if tiver apenas uma linha de código não é necessário “{“ “}”, caso contrário é obrigatório.

É estruturado da seguinte forma:

if (condição)

{

execute um certo bloco de comandos

}

else

{

execute esse bloco

}

Passando para a prática ficaria assim:

if(x > 0)

{

printf (“\n\n bloco do if ”);

}

else

{

printf (“ \n\n bloco do else ”);

}

O if não precisa necessariamente de um else, mas um else não existe sem o if.

O laço enquanto ou while: Este laço de repetição é um bom laço para se fazer loop, o enquanto é usado quando se necessita repetir não se sabe lá quantas vezes determinado trecho de código, e tem uma condição de parada que é testada no inicio do laço, para entrar no loop a expressão ou condição precisa ficar falsa para sair do laço.

while (condição)

{

Bloco de comandos….

}

É estruturado da seguinte forma:

while (x != 10)

{

printf (“\n\n Digite um numero: ”);

scanf (“%d”, & num);

}

Lembrando que num é uma variável já declarada pelo programador anteriormente, geralmente no inicio do programa.

O laço repita ou do while: Este laço é praticamente igual ao laço while só que é diferente, pois o teste da condição para se repetir mais uma vez o laço é feito no final, portanto o loop é executado pelo menos uma vez.

É estruturado da seguinte forma:

do { // início do laço repita ou do while

printf (“\n\n Digite um numero: ”); // imprime a mensagem na tela

scanf (“%d”, & num); // lê ou recebe do teclado

} while (x != 10 ); // avalia se a condição é verdadeira ou falsa, se for sai do laço, se for falsa repete o laço mais uma vez

Obs.: A estrutura dos laços while e do while foram repetidas de propósito para se observar que a diferença entre os dois é que no while o bloco só será executado se o “x” for diferente de 10, caso contrario o programa pulará esse bloco e continuará a execução do programa a seguir. No laço do while o bloco será executado pelo menos uma vez, pois o teste da condição de repetição while (x != 10) encontra-se no final do bloco. Também é um laço que se usa quando não se sabe quantas vezes irá repetir, mas precisa ser executado pelo menos uma vez.

Note também que em while, não tem “;” depois da condição “while (x != 10) { “ tem é uma “}” e em

do{ }while (x!=10); tem “;” e não “}” pois este já foi posto na frente de while.

O Laço for (O laço repita): Este laço é indicado para fazer um loop com um numero definido ou quando se conhece o numero de vezes que se quer repetir certo bloco de comandos. Sua estrutura é a seguinte:

for (i = 0; i <>

{

printf (“\n\n Digite a nota %d: ”, i+1);

scanf (“%f”, & nota);

if ( nota > 5.0)

{

printf (“\n\n Aluno aprovado !! “);

}

}

A variável “i” dentro do laço for, serve como um contador que vai sendo incrementado. Note que se tem 3 “;” dentro dos parênteses do laço o primeiro inicia o ponto de contagem, o segundo verifica se é verdadeiro (no caso se o i é menor que cindo, se for entra no laço, senão não executa e continua a execução), e o terceiro é o incremento da variável “i”.

O comando swhitch: Este comando é um refinamento do if. Deve ser usado quando se tem que escolher ou optar por alguma alternativa dentre varias tomadas de decisões, quando se há mais de duas alternativas ou escolhas.

Sua estrutura fica assim:

Switch (opção) { // ”opcao” é uma variável onde conterá um único valor ou algo do tipo, exceto string

case 1: printf (“\n\n Voce digitou certo ”); // se o valor de “opcao” for 1 executará isso.

break; // faz abandonar o switch e não executa o restante da estrutura

case 2: printf (“\n\n Digite algo: “);

scanf (“%d”, & num);

break;

default: printf (“\n\n tente novamente ”); // é como se fosse o “else” do comando if. }

}

Onde tem “case 1:” significa: se o valor da variável ”opção” for 1 o switch executa o bloco ate encontrar “break;” comando que faz abandonar o switch ou em qualquer outra condição como if, while ele pode ser usado. Se não tiver o break, o switch executara todos os “case’s” ate encontrar um break ou acabar a estrutura switch.

Onde tem “default: ” é como se o que contiver na variável “opção” não for o valor 1, ou 2, ou 3 o swhitch executara o trecho contido em “default:”

Vetor e Matriz: Uma variável pode guardar apenas um valor ou um tipo de dado qualquer, por exemplo, ate agora, se quiséssemos guardar quatro notas de um aluno, teríamos que declarar 4 variáveis, utilizando vetor, podemos criar uma única variável, “notas”, com quatro posições de armazenamento.

É como se fosse uma moto, que pode transportar apenas uma pessoa, alem do piloto, ai você necessita de levar mais pessoas ai o que você faz? Compra um carro ou uma van, dependo. Com Vetor é a mesma coisa.

Sua declaração é da seguinte forma:

int notas[4]; // declaração de uma variável vetor de uma dimensão

Onde int é o tipo, notas é o nome e [4] é o tamanho do vetor, geralmente para preencher vetores como os de notas usam-se o laço for.

Já viu uma um tabuleiro de xadrez olhando do alto? Isso pode ser um exemplo de uma matriz, é quase igual ao vetor, mas possui uma abrangência de armazenamento de dados muito maior, sua declaração é a seguinte:

int matriz[4][4]; // declaração de uma variável matriz de duas dimensões

Dizemos que esta é uma matriz 4 X 4, ou quatro linhas por quatro colunas, onde o primeiro [] são as linhas e o segundo [] são as colunas, para manipular esse tipo de dados usa-se geralmente um laço for dentro de outro, ou um for identado, como é chamado pelos programadores. Exemplo pra preencher uma matriz com dados:

for (i = 0; i <>

for (j = 0; j <>

printf (“\n\n Digite um valor: ”);

scanf (“%d”, & matriz[i][j]);

}

}

Onde se tem [i][j] são os chamados índices, no caso anterior as variáveis “i” e “j” contem valores que serviram para variar a posição de armazenamento da matriz a cada repetição do laço, fazendo assim que toda a matriz seja preenchida de forma mais prática. Geralmente no laço for, o “i” varia as linhas e o “j” varia as colunas.

Strings: É uma cadeia de caracteres, ou também, um vetor de caracteres do tipo char.

Para imprimir uma mensagem na tela ou algo assim usamos a função “printf” para imprimir uma string contida numa variável ”nome”, por exemplo, usamos a função chamada “puts”. Ex:

char nome[20]; // declaração de uma variável para armazenar uma string ou cadeia de caracteres

printf (“\n\n digite seu nome: “); // exibe uma mensagem na tela

gets (nome); // captura a string ate ser digitado “enter”

printf (“\n\n ola, “); // exibe a mensagem de boas vindas, “ola”

puts (nome); // função que pega toda a string armazenada em “nome” e exibe na tela/

Você deve ter notado também que no trecho de código acima tem outro comando desconhecido até então, o comando “gets”, é idêntico ao comando “puts”, mas é diferente.

puts imprime todo o conteúdo armazenado na variável que é identificada entre os parênteses da função, é o “printf” de strings.

“gets” captura tudo o que é digitado no teclado e armazena na variável que esta informada entre os parênteses do comando, é como se fosse o “scanf” de strings.

Se não fosse “puts” e ”gets”, para conseguirmos obter quase o mesmo resultado dessas funções, teríamos que fazer o seguinte, utilizando “printf” e “scanf”:

char nome[20];

printf (“\n\n Digite seu nome: ”);

for (i= 0; i <>

{

scanf (“%c”, & nome[i]);

}

printf (“\n\n Ola, “);

for (i = 0; i <>

printf (“%c”, nome[i]);

}

Operadores: Os operadores são os mais variados e podem ser usados de diversas formas, desde que está esteja dentro de uma determinada lógica de programação.

Basicamente os operadores são esses:

“ = ”: Chamado operador de atribuição, é utilizado quando se quer atribuir valor à alguma variável ou algum evento do tipo. Exemplo:

int x = 0; // atribuição do valor 0 à variável “ x”

“ == “ : Chamado de operador relacional, é utilizado em condições como if, laços como while, do while, etc. ex:

If (x == y) { // operador relacional que testa se uma variável ou algo do tipo é igual à outra variável ou algo do tipo

printf (“\n\n ola ”); }

else {

printf (“\n\n oiieee ”);

“ –“: Chamado operador de decremento, é basicamente usando para abreviar o decremento de um variável. Ex:

x = x – 1; // forma normal de decrementar uma variável

– x; // é a forma abreviada de fazer a mesma operação citada acima

Obs: o “ — “, antes da variável faz o decremento da variável no mesmo momento, e o “ — “ depois da variável, faz o decremento depois do processamento daquela linha de código e também, o “–“ antes da variável tem precedência no momento de realizar alguma operação ou algo do tipo sobre “–“ depois da varaivel, portanto:

– x; // esse decremento é diferente e pode obter conseqüências diferentes do citado abaixo

x –; // esse decremento é diferente e pode obter conseqüências diferentes do citado acima

A observação citada acima vale também para o operador “ ++ ”.

“ >”, “ >= “, “ =< “, “<”: O operador relacional “maior que”, e “menor que” são mais usados em condições, e em laços de repetição, para ser avaliado o estado de uma determinada condição, se ela é maior ou menor do que a atual, sua manipulação é da seguinte forma:

If (x > 5) { // o operador “>” verifica se o valor de “x” é maior que cinco, se for, a condição será executada.

printf (“\n\n laço do if”); }

while (x > 5) { // o operador “>”pode ser usado + de uma vez ou em expressões dentro dos laços e condições.

printf (“\n\n laço do while”); }

“ += ”, “ *= ” : Esses operadores, assim como “++” são abreviações de incrementos, são usados da seguinte forma:

x = x + 5; // modo padrão de ser feito o incremento

x += 5; // modo abreviado de ser feito o incremento,e que dependendo pode economizar muitas linhas.

Obs: O mesmo vale para os operadores “ -= “, ” /= “. Sua manipulação é da mesma forma.

“ != ”: Operador de diferença, normalmente usado em condições if e em laços enquanto. É usado da seguinte forma:

while (x != 5) { // condição que repetira o laço ate que “ x ” seja diferente de 5.

printf (“\n\n laço while”); }

Exercícios

  1. Faça um programa que apresente na tela a mensagem: “alo mundo”.
  2. Faça um programa que receba dois números inseridos pelo usuário e os some.
  3. Faça um programa que receba um numero, se ele for maior que 10, ira somar com outro numero que o usuário digitar, senão, ira fazer uma subtração, e apresente o resultado na tela.
  4. Faça um programa que receba 4 notas de um aluno, calcule a maior, menor nota, alem da media.
  5. Faça um programa que preencha um vetor de 5 números e os mostre na tela.
  6. Faça um programa que preencha um vetor de 5 números e os mostre invertidos, o ultimo sendo mostrado primeiro, o penúltimo por segundo e assim por diante.
  7. Faça um programa que preencha uma matriz 2×2 e imprima essa matriz na tela.
  8. faça um programa que receba um numero do usuário enquanto ele não digitar o valor “10”.
  9. faça um programa que receba o nome do usuário e imprima “ola,..” enquanto ele não o valor “0”.

Compiladores de C: Borland C++ ,

- Alguma duvida com os exercicios? post aqui em baixo e nós do Ideia Programada iremos nos auxiliar, mas, caso alguem tenha feito, publique aqui em baixo.
A participação de todos é importante para compartilharmos ideias.

1 comentários:

Este comentário foi removido pelo autor.

Postar um comentário