Ir ao conteúdo

Tutorial [Básico] em C


Sylerr

Posts recomendados

Postado

TUTORIAL BÁSICO EM C

Bom pessoal vou postando aos poucos alguns tutoriais sobre C.

Nível Básico.

1 - Utilizando IF

IF em C significar dar uma condição ao sistema.

Sintaxe

Em Portugues:


SE ( VARIAVEL [I]condição[/I] TERMO)
então{

resultado;

fim então}

Traduzindo: se a variavel digitada for maior que o termo. Mostra o resultado;

Código:


if(variavel>5)
{
printf("Variavel maior que 5.");
}

Traduzindo: se a variavel for maior que 5, ira aparecer na tela "Variavel maior que 5."

2 - WHILE

WHILE em C significa 'fazer' Loops enquanto um determinado valor ou condição ser verdadeiro(true)

Sintaxe:

Portugues:


ENQUANTO(VARIAVEL for MAIOR que 5)
então{

resultado

final então}

Traduzindo: O algoritmo entra em Loop enquanto um termo ou variavel for maior que 5.

Código:


While(Variavel > 5)
{
printf("informe um numero:");
scanf("%d",&Variavel);
}

3- DO WHILE

DoWHILE em C significa fazer algum determinado comando enquanto a condição for verdadeira ou falça.

Sintaxe

Portugues


FAZER{

Ola mundo!

i++;

linhas de códigos;
}ENQUANTO(i for menor que 5)

Traduzindo: Ele ira fazer o que tiver dentro do DO(FAZER) enquanto uma variavel ou termo for verdadeira ou falça.

Código


do{
printf("Ola mundo!\n");
i++
}while(i<5)

Traduzindo: Ira mostrar na tela "Ola mundo!" e depois acrescenta 1 na variavel 'i', e ira ficar mostrando a mensagem até a variavel 'i' for menor que 5.

4 - FOR

FOR em C (na minha opinião) é uma forma diferenciada de programar com WHILE e DoWHILE. Pois sua sintaxe é bem parecida.

Sintaxe

Portugues


PARA:(Condição INICIAL;ENQUANTO;ACRESCENTA)
(

código;
);

Tradução: O for da uma condição inicial, e entra em Loop até essa variavel for verdadeira e no final do código ele acrescenta um valor.

Código


for(int i =0 ; i< 5; i++)
{
printf("%dx Ola Mundo!",i);
}

Traduzindo: A variavel i inicia em o(zero), entra em Loop enquanto ela for menor que 5 e no final da chave ela acrecenta +1.

5 - SWITCH CASE

Switch case em C seria um termo utilizado para dar diversos casos em C, é um pouco parecido com IF, se usado para a mesma finalidade. Seleção de MENU, este meio é o mais usado.

Sintaxe

Portugues


SWITCH (variave)
{
CASO 1:
linha de codigo;
quebra;
CASO 2:
linha de codigo;
quebra;
OMISSÂO:
linha de codigo
quebra;
}

Traduzindo: Switch são casos(cases) onde podemos atruir números(int,float) como strings(char) para cada caso, mas é sempre bom começar pelo básico, utilizando cases de int(inteiros)

Código



switch (variavel)
{
case 1:
código;
break;
case 2:
código;
break;
case 3:
código;
break;

default:
código

Traduzindo: Switch é usado para quando temos um menu com varias opções, para programadores nível básico, começam com uma calculadora. sendo case 1: somar, case 2: subtrair, etc,etc, o termo "default", é usado para caso o usuário digitar um número que não esta dentre os casos, exemplo: temos apenas case 1 e case 2, caso o usuário digite 3, entra no default, com uma mensagem ou linhas de códigos que o usuário desejar.

6 - VETORES

Vetores em C é bem dizer uma lista. com determinados valores e posições. Podem ser chamados de Array

Vetores podem ser preenchidos a partir das informações citadas acima. como WHILE, DoWHILE e FOR.

e as posições do vetor sempre é feita com a seguinte lógica: N-1.

Pois se contarmos um vetor de 5 posições contamos assim:

0

1

2

3

4

se contarmos o zero, até o 4, teremos 5 posições. Mas podemos iniciar também o vetor começando por 1 ou qualquer outro valor.

Sintaxe

Portugues:


VETOR de 5 posições;

VETOR na POSIÇÃO 0 recebe 1;
VETOR na POSIÇÃO 1 recebe 2;
VETOR na POSIÇÃO 2 recebe 4;
VETOR na POSIÇÃO 3 recebe 8;
VETOR na POSIÇÃO 4 recebe 16;

Traduzindo: Este vetor recebe em cada posição um valor e na próxima posição esse valor é dobrado., porém a MUITAS maneiras de preencher um vetor.

Código


int vetor[5];

vetor[0] = 1;

for(int i=1;i<4;i++)
{
vetor[i] = vetor[i-1]*2;
}

Traduzindo: no inicio a posição inicial [0], recebe o valor 1. e nas seguintes posições, a posição atual recebe a anterior e multiplicar por 2.

7 - MATRIZ

Matrizes em C é são parecidas com vetores, porém vetores possuem apenas COLUNAS, já matriz possui LINHAS E COLUNAS, Sua elaboração é praticamente igual a vetores, porém um pouco mais estença pois é preciso preencher todas as linhas e colunas.

Sintaxe

Portugues


MATRIZ[LINHA][COLUNA]
// Preenchimento

/*Utilizamos o FOR*/
PARA(INTEIRO L=0;L MENOR QUE LINHA; ACRESCENTA L)
{
PARA (INTEIRO C=0;C MENOR QUE COLUNA; ACRESCENTA C)
{
linha de codigo para preencher;
}
}

Traduzindo: Matriz são preenchidas de coluna por coluna, LINHA por LINHA

Código


for(int l=0;l<linha;l++)
{
for(int c=0;c<coluna;c++)
{
printf("Informe o valor [%d][%d]: ",l,c);
scanf("%d",&matriz[l][c]);
}
}

Traduzindo: Este é o meio mais tradicional de preencher uma matriz, nesses loops, ele preenche linha 0(inicial) e preenche toda as colunas da linha 0, e depois passa para linha 1 e faz o mesmo.

8 - Funções.

Funções em C, nesta etapa é onde começamos a programar em nível mais "organizado" diria eu, pois funções ajudam muito para deixar o main mais "limpo", com menos linhas de código entre outros.

Sintaxe

Portugues


<TIPO> <Nome da Função> ()
{
linhas de código;
}

Traduzindo: Função em C, é programada na seguinte estrutura. <tipo da função> (INT, FLOAT, Boolean, void, char)<Nome da função> (prórpio nome dito.

Obs.: Lembrando que o Nome da Função NÃO pode ter espaço!

Código


// <TIPO> <Nome da função> ()

void OlaMundo()
{
printf("Ola Mundo!");
}


main()
{
OlaMundo();
}


Traduzindo: Criada a Função OlaMundo, que quando "chamada" no main, exibe seu conteudo, que seria o 'printf("Ola Mundo");'

9 - Funções (Passagem Por Parâmetro)

A partir daqui, não colocarei mais o código em Portugues, apenas como é feito no Programa utilizado.

Funções e Passagem por parâmetros, é uma continuação de Funções, porém 1 pouco mais complicado de se entender. Pois nesta parte iremos passar para uma função Um ou mais parâmetros.

Sintaxe

Código


#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <windows.h>
#include <cstdlib>

int num1,num2;

void multiplica(int num1, int num2)
{
int multiplica;
multiplica = num1*num2;


printf("Numeros Multiplicados: %dx%d = %d",num1,num2,multiplica);
}

main()
{
printf("Informe o Numero 1 e Numero 2\n");
scanf("%d",&num1);
scanf("%d",&num2);
multiplica(num1,num2); // E1
getch();

}

Explicação: Neste Código, o usuário digita 2 números e depois passa por parâmetro, os 2 números digitados para a Função Multiplica.(E1) Ou seja a passagem por parâmetro recebe uma cópia, dos valores das variaveis digitadas pelo usuário epassa para a função que recebe esses numeros pelas variaveis num1 e num2 (dentros dos parenteses () ) que não são obrigados a serem o mesmo nome. Poderia ser Void Multiplica (int a, int B), que iria funcionar do mesmo jeito.

10 - Funções (Passagem por Referencia)

Passagem por refêrencia é parecido com parâmetro. Porém... Neste caso o que é enviado para a função é uma referência às variáveis utilizadas, e não uma simples cópia, pelo que as alterações realizadas dentro da função irão certamente alterar os valores contidos nessas variáveis.

Sintaxe

Código


#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <windows.h>
#include <cstdlib>

int num1,num2;

void multiplica(int *a, int *B)
{
int multiplica;
multiplica = (*a)*(*B);


printf("Numeros Multiplicados: %dx%d = %d",num1,num2,multiplica);
}

main()
{
printf("Informe o Numero 1 e Numero 2\n");
scanf("%d",&num1);
scanf("%d",&num2);
multiplica(&num1,&num2);
getch();
printf("num1: %d",num1); // E1
getch();

}

Explicação:Como dito acima, passagem por referencia, se mudarmos o valor dentro da função, o valor da variavel fora da função ira mudar também. Já em Parametro isso não acontece; E por referencia quando chamada a função os valores que vão por referencia tem que estar com o '&' para poder passar para a função que estará com as variaveis apontadas com o '*'.

Testem Agora


#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <windows.h>
#include <cstdlib>

int num1,num2;

void multiplica(int *a, int *B)
{
int multiplica;
*a = 5;
multiplica = (*a)*(*B);


printf("Numeros Multiplicados: %dx%d = %d",num1,num2,multiplica);
}

main()
{
printf("Informe o Numero 1 e Numero 2\n");
scanf("%d",&num1);
scanf("%d",&num2);
multiplica(&num1,&num2);
getch();
printf("num1: %d",num1); // E1
getch();
}

Explicação: Neste caso se digitarmos para num1 o valor '1', dentro da função (por referencia) ele ira receber 5,

Pois como está no código *a =5;

E mostrado no Printf (E1) ele não esta mais sendo 1 e sim o 5, pois na referencia dentro da função, foi alterado o seu valor. Esta é a grande Diferença entro Passagem por Referencia e Parâmetro, é sempre bom ficar atentos a isto.

11 Estrutura de Dados - Structs

Structs é um meio de estrutura de dados é nada mais nada menos, que um dado que contém um ou mais membros (objetos), ou no curto e grosso. Variaveis, ou seja para um simples entendimento, poderiamos dizer que são variaveis dentro de uma variavel.

Sintaxe

Para Definir uma Struct basta seguir esse exemplo.


Struct <NomeDaStruct> {
int/char/float <variavel>
}

Mas se notar no final da '}'. Não tem exemplo <nomestruct>;

Sim, não tem. Mas quando colocado o nome final, equivale a fazer isto no Main:


<NomedaStruct> <NovoNome>

Exemplo:


Struct data{
int dia;
int mes;
int ano;
}

...

main ()
{
data hoje;
}

Estariamos definindo um nome para a Struct, apontando a 'data' para o nome 'hoje'

Na minha opinião, eu ja coloco o typedef para já definir o nome da Struct.


typedef struct Pessoa{
int CPF;
char nome[40];
} pessoa;

mas poderia ser assim também.



typedef Pessoa pessoa;

struct Pessoa {
int CPF;
char nome [40];
}

Podemos também atribuir vários objetos de uma mesma struct.


struct {
char cor[30];
int idade;
char nome[50];
} cachorro,gato;

Então teriamos:


cachorro.cor;
cachorro.idade;
cachorro.nome;
gato.cor;
gato.idade;
gato.nome;

Certo. agora no Main.

para utilizar a struct fazemos assim.


struct Pessoa{
int cpf;
char nome[40];
} pessoa_fisica,pessoa_juridica;



main()
{
printf("PESSOA FISICA: ");
scanf("%d",&pessoa_fisica.cpf);

printf("PESSOA JURIDICA ");
scanf("%d",&pessoa_juridica.cpf);

getch();

}

utilizamos sempre o seguinte padrão


<NomedaStruct>.<membroDaStruct>

Utilizamos o '.' para chamar um membro da Struct.

Claro, que pessoa Jurídica não seria CPF, mas apenas para exemplificar :lol:

Por enquanto é isso. Espero que gostem, qualquer coisa que esteja errado ou pensem de outro modo, estou a disposição de modificar para o melhor entendimento de todos.

AH!

Desculpa qualquer coisa os erros de Portugues :P

  • mês depois...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Mostrar mais  

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

Mostrar mais  
×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!