Lógica de Programação em C Indice
1
Verifica se o número é par ou impar. 7
Fila
2
Verifica se o número é par ou impar versão 2 (usando laço).

3
Verifica se o número é par ou impar versão 3 (usando laço).

4
Vetores.

5
Estrutura.

6
Pilha



























Exemplos do uso da linguagem C

Verifica se o número é par ou impar
#include <stdio.h>
#include <stdlib.h>
#include <conio2.h>

main(){
clrscr();
// Posicionamento em tela
int a = 0;
int b = 0;
printf("Entre com um numero inteiro \n");
printf("Maior que zero \n");
scanf("%d",&a);
b = a ;
printf("\n");
while (a > 1){
a = a - 2;
}
if( a == 0 ){
printf("O valor %d e um numero par. ", b);
}
else{
printf("O valor %d e um numero impar. ", b);
}
printf("\n");
system("pause");
}

Início


Verifica se o número é par ou impar dois
#include <stdio.h>
#include <stdlib.h>
#include <conio2.h>

main(){
clrscr();
// Posicionamento em tela
int a = 0;
int b = 0;
int op = 1;
while( op != 2){
system("cls");
printf("Entre com um numero inteiro \n");
printf("Maior que zero \n");
scanf("%d",&a);
b = a ;
printf("\n");
while (a > 1){
a = a - 2;
}
if( a == 0 ){
printf("O valor %d e um numero par. ", b);
}
else{
printf("O valor %d e um numero impar. ", b);
}
printf("\n");
printf("1- novamente 2- Sair \n");
printf("Digite a opcao \n");
scanf("%d",&op);
}
printf("\n");
system("pause");
}

Início


Verifica se o número é par ou impar três.
#include <stdio.h>
#include <stdlib.h>
#include <conio2.h>

main(){
clrscr();
// Posicionamento em tela
int a = 0;
int b = 0;
int op = 1;
int flag = 0;
while( op != 2 ){
flag = 0;
system("cls");
printf("Entre com um numero inteiro \n");
printf("Maior que zero \n");
scanf("%d",&a);
b = a ;
printf("\n");
while (a > 1){
a = a - 2;
}
if( a == 0 ){
printf("O valor %d e um numero par. ", b);
}
else{
printf("O valor %d e um numero impar. ", b);
}
while ( flag == 0 ){
printf("\n");
printf("1- novamente 2- Sair \n");
printf("Digite a opcao \n");
scanf("%d",&op);
if ( op == 1 || op == 2){
flag = 1;
}
else{
flag = 0;
}
}

}
printf("\n");
system("pause");
}

Início


Vetores

São variáveis que servem para guardar vários valores de mesmo tipo
de forma uniforme na memória. Temos assim que definir quantos valores
ele deve guardar para que seja reservado o espaço necessário em memória.

Definindo um vetor:
1º - Tipo de dado a ser armazenado no vetor.
2º - Nome do vetor.
3º - Valor a ser acumulado no vetor.

Na figura abaixo temos a definição e carga de um valor no vetor.




Veja o exemplo abaixo, um vetor com 10 posições:

Vetor com 10 posições
#include <stdio.h>
#include <stdlib.h>
#include <conio2.h>

main()
{
int a[10];
int cont = 0;

a[0] = 55;
a[1] = 11;
a[2] = 33;
a[3] = 31;
a[4] = 3;
a[5] = 15;
a[6] = 20;
a[7] = 21;
a[8] = 14;
a[9] = 15;

//Mostrando os valores do vetor

while(cont <= 9){
printf("O valor de a[%d] = %d. ",cont, a[cont]);
printf("\n");
cont = cont + 1;

}
system("pause");

}

Início

Entrando com dados via teclado, usando um laço.
Entrada por laço (faça enquanto)
#include <stdio.h>
#include <stdlib.h>
#include <conio2.h>

main()
{
int a[10];
int cont = 0;

clrscr();

//Laço para a entrada de 10 valores.


while(cont <= 9){
printf("Entre com um valor inteiro para a[%d] ",(cont + 1));
printf("\n");
scanf("%d",&a[cont]);
cont = cont + 1;
}


//Mostrando os valores do vetor
cont =0; //Posicionando a posição do vetor em zero.
while(cont <= 9){
printf("O valor de a[%d] = %d. ",cont, a[cont]);
printf("\n");
cont = cont + 1;

}
system("pause");

}

Início


Estrutura - struct -

Em vetores você notou que foi somente possível trabalhar com um
único tipo de dados, assim para solucionar este problema será
utilizada uma estrutura de dados, que se denomina na linguagem
C como struct, que irá trabalhar com vários tipos diferentes.
Tais tipos são membros da estrutura em uma mesma tabela.

Exemplo de uma estrutura - struct -

struct funcionario {
char nome[50];
int idade;
char sexo[1];
};


main () {
struct funcionario func[50];
int i = 0;

while ( i < 3)
{
printf("\nNome do %u Funcionario: ", i);
scanf("%s", &func[ i ].nome);

printf("Idade do %u Funcionario: ", i);
scanf("%u", &func[ i ].idade);

printf("Sexo do %u Funcionario (F ou M): ", i);
scanf("%s", &func[ i ].sexo);

i++;
};

system("cls");
i=0;
while (i < 3)
{
printf("-----------------------------------\n");
printf("Nome do %u Funcionario: %s ", i, &func[ i ].nome);
printf("\nIdade do %u Funcionario: %u \n", i, func[ i ].idade);
printf("\nSexo do %u Funcionario: %s \n", i, func[ i ].sexo);
printf("-----------------------------------\n");
printf("\n");
i++;
};
system("pause");

}


Início

Outro programa usando struct
Programa 2
#include <stdio.h>
#include <stdlib.h>
#include <conio2.h>

struct registro
{
char nome[40];
float nota1;
float nota2;
float nota3;
float nota4;
};

main(){

struct registro aluno[30];
char tecla;
int p = 0;

system("cls");
printf("\nCadastro do aluno");

while( p <= 3)
{

printf("\nInforme o nome .... ");
scanf("%s", &aluno[ p ].nome);

printf("Informe o Nota1 .... ");
scanf("%f", &aluno[ p ].nota1);

printf("Informe o Nota2 .... ");
scanf("%f", &aluno[ p ].nota2);

printf("Informe o Nota3 .... ");
scanf("%f", &aluno[ p ].nota3);

printf("Informe o Nota4 .... ");
scanf("%f", &aluno[ p ].nota4);

p = p + 1;

};

p = 0;
while( p <= 3)
{
clrscr();
printf("===========================================\n");
printf(" SAIDA DE DADOS\n");
printf("Nome ...... : %s \n", aluno[ p ].nome);
printf("Nota1 ...... : %6.2f \n", aluno[ p ].nota1);
printf("Nota2 ...... : %6.2f \n", aluno[ p ].nota2);
printf("Nota3 ...... : %6.2f \n", aluno[ p ].nota3);
printf("Nota4 ...... : %6.2f \n", aluno[ p ].nota4);
printf("\n");
printf("Tecle algo para continuar : "); tecla = getche();

p = p + 1;
};
}

Início


Para montar e corrigir
Programa 3    <<< CORRIGIR >>>
#include <stdio.h>
#include <stdlib.h>
#include <conio2.h>

struct registro
{
int cod;
char nome[40];
char fone[20];
char celular[20];
char email[30];
};

struct registro dados[10];
int posi = 0;//Incremento da posição do vetor.

main(){

int op = 0;

while(op != 6){
switch(menu()){
case 1:insere();break;
//case 2:proc_cod();break;
//case 3:proc_nome();break;
//case 4:corrige();break;
//case 5:apaga();break;

case 6:op = 6;break;
default:printf ("ERRO - somente 1-2-3-4-5-6\n");
}
}//Fim do laço.

// printf("Tecle algo para continuar : "); tecla = getche();
}//Fim do programa principal.

int menu(){
int op = 0;
system("cls");
printf(" M E N U D O S I S T E M A\n");
printf("\n");
printf(" 1. Insere novo contato.\n");
printf(" 2. Procura contato pelo codigo.\n");
printf(" 3. Procura contato pelo nome.\n");
printf(" 4. Alteracao de dados.\n");
printf(" 5. Apaga contato.\n");
printf(" 6. Sair da agenda.\n");
printf("\n");
printf("Entre com a opcao >> ");scanf("%d",&op);
return op;bf();
}//Fim da função menu().


insere(){
if(posi != 9){
insere_reg();
posi++;
}
else{
printf("\nArquivo cheio");
system("pause");
}
}//fim da função insere

int vexiste(int y){
int exst = 1;
int i = 0;

while(i <= 9){
//printf("%d",dados[i].cod);system("pause");
if(y == dados[i].cod){
printf("Codigo ja existe ....\n");
exst = 0;
}
i++;
}
return exst;
}

bf(){
fflush(stdin); // Limpa o buffer do teclado
}

insere_reg(){
int vcod = 0;
int x = 0;
system("cls");
printf("============================================\n");
printf(" INSERIR CONTATO NO ARQUIVO\n");

while(x != 1){
printf("Entre com o codigo do novo contato : ");
scanf("%d",&vcod);bf();
x = vexiste(vcod);
}
dados[posi].cod = vcod;
bf();
printf("\n");
printf("Entre com o nome : ");gets(dados[posi].nome);bf();
printf("\nEntre com o telefone : ");gets(dados[posi].fone);bf();
printf("\nEntre com o celular : ");gets(dados[posi].celular);bf();
printf("\nEntre com o email : ");gets(dados[posi].email);bf();

}

Início


Pilha

   <<< Pilha >>>
#include <stdio.h>
#include <stdlib.h>
#include <conio2.h>

int a[10];
int b[10];
int Topo=0;

main()
{
clrscr();
int op = 0;
while(op != 4){
switch(menu()){
case 1:empilhar();break;
case 2:desempilhar();break;
case 3:mostrarPilha();break;
case 4:op = 4;break;
default:printf("Somente 1 2 3 ou 4 \n");pausa();break;
}
}
}

//.................................................................
// Modulos para operar a pilha.
//.................................................................

int contavetor(){
int tamanho;
int valor;
int contador;
tamanho = 0;
valor = 0;
for(contador = 0;contador <= 9;contador++){
valor = a[contador];
if(valor != 0)
tamanho++;
}
return tamanho;
}

int cheia(){
Topo=contavetor();
if(Topo >= 9)
return 0;
else
return 1;
}

int vazia(){
Topo=contavetor();
if(Topo == 0)
return 0;
else
return 1;
}

//.................................................................


empilhar(){
if(cheia() != 0){
Topo++;
printf("\n");
printf(".....................................\n");
printf(" Numero do elemento da pilha %d\n ", Topo);
printf(" Entre com um valor para empilhar-mos\n");
printf("\n");
scanf("%d",&a[Topo]);
printf("\n");
printf(".....................................\n");
}
else{
printf("......................................................\n");
printf(" A pilha ja esta cheia, nao pode receber mais valores\n ");
printf("......................................................\n");
pausa();
}
pausa();

}

//.................................................................

desempilhar(){
if(vazia() != 0){
a[Topo]=0;
Topo--;
printf("Elemento %d desempilhado\n",(Topo + 1));
}
else{
printf("A pilha esta vazia, nao ha elementos para desempilhar !!!\n");
}
pausa();
}

//.................................................................

mostrarPilha(){
if(vazia() != 0){
int i;
for(i=Topo; i >= 1;i--)
printf("O elemento de numero %d contem o valor %d\n",i,a[i]);
}
pausa();
}

//.................................................................
// Modulos para operar o programa
//.................................................................

pausa(){
/*
char p[1] = "";
printf("Aperte qualquer tecla para continuar\n");
scanf("%s",p);
*/
system("pause");
}
//.................................................................
int menu(){
clrscr();
int op = 0;
printf("\n");
printf("\n");
printf("======== M E N U D A P I L H A ==========\n");
printf("\n");
printf(" 1. Empilhar um elemento numerico.\n");
printf(" 2. Desempilhar um elemento.\n");
printf(" 3. Mostrar pilha.\n");
printf(" 4. Sair.\n");
printf(" Entre com uma opcao.\n");
scanf("%d",&op);
printf("\n");
return op;
}


Início



Fila

   <<< Fila>>>
#include <stdio.h>
#include <stdlib.h>
#include <conio2.h>
#include <string.h>

//Variáveis públicas
int vetor[5];
int xvetor[5];
int Topo = 0;

//Função para contar o números de elementos de uma
//Fila.
int contavetor(){
//Variáveis privadas
int tamanho;
double valor;
tamanho = 0;
valor = 0;
int contador = 0;
//..................................................

for(contador = 1;contador <=5 ;contador++){
valor = vetor[contador];
if(valor != 0)
tamanho++;
}
return tamanho;
}

//Fila Cheia.
int cheia(){
Topo=contavetor();
if(Topo >= 5)
return 0;//ZERO se já está cheia.
else
return 1;//UM se não está cheia.
}

//Fila Vazia.
int vazia(){
Topo=contavetor();
if(Topo == 0)
return 0;//ZERO se já está vazia.
else
return 1;//UM se ainda tem ao menos um elemento.
}

enfileirar(int n){
if(cheia() != 0){
Topo++;
vetor[Topo]=n;
printf("Valor enfileirado %d\n",n);
}
else{
printf("A fila ja esta cheia\n");
system("pause");
}

}

mostrarFila(){
int i = 1;
if(vazia() != 0){
for( i; i <= 5;i++)
if(vetor[i] != 0)
printf("Posicao %d da FILA contem o valor %d\n",i, vetor[i]);
}
else{
printf("A fila esta vazia\n");
}
}

desenfileirar(){
int cont = 1;
if(vazia() != 0){
printf("Desenfileirou %d ",vetor[1]);
vetor[1] = 0;//Desenfileirou o valor.
while( cont <= 5){
cont++;//Incremento para não pegar a posição com ZERO.
xvetor[cont-1] = vetor[cont];
}
//Remontando o vetor principal.
cont = 1;
while( cont <= 5){
vetor[cont] = xvetor[cont];
xvetor[cont] = vetor[cont];
cont++;
}
}
else{
printf("A pilha esta vazia, nao ha elementos para desempilhar !!!\n");
}
system("pause");
}

//Programa principal.
main(){
enfileirar(5);
enfileirar(7);
enfileirar(10);
enfileirar(12);
enfileirar(15);
desenfileirar();


mostrarFila();
system("pause");
}

Início