Linguagem C
Olá amigos, nessa seção disponibilizarei um conteúdo um pouco diferente do que podemos encontrar em páginas sobre linguagens de programação. Quero colocar aqui uma um apanhado de dicas que fazem a diferença na hora de criar um bom código fonte. Inicialmente coloco vários exemplos para iniciantes da arte de programar.
|
Table of Contents
|
Dicas
- Como limpar a tela no C - http://faq.cprogramming.com/cgi-bin/smartfaq.cgi?answer=1031963460&id=1043284385
- http://www.cs.cf.ac.uk/Dave/C/
- http://www.iu.hio.no/~mark/CTutorial/CTutorial.html
Instalação do C/C++
Nesse tutorial vc aprende a instalar o geany e o compilador mingw de maneira fácil e prática:
http://aquilesburlamaqui.wikidot.com/passo-a-passo-para-instalacao-do-geany-no-windows
Ele instala o C++ que é compativel com a linguagem C.
Hello World
#include <stdio.h> int main() { printf("Hello World!\n"); }
Variáveis
#include <stdio.h> int main() { int inteiro; float flutuante; char caracter; int arrayDeInteiros[10]; float arrayDeFlutuantes[5]; char arrayDeCaracter[50]; }
Saída da Dados
#include <stdio.h> int main() { printf("%i\n",2); printf("%f\n",3.4); printf("%c\n",'a'); printf("%s\n","Texto"); }
Entrada de Dados
#include <stdio.h> int main() { int inteiro; float flutuante; char caractere; char string[50]; scanf("%i",&inteiro); scanf("%f",&flutuante); getchar(); scanf("%c",&caractere); getchar(); scanf("%s",&string); printf("O inteiro digitado foi: %i\n",inteiro); printf("O flutuante digitado foi:%f\n",flutuante); printf("O caractere digitado foi:%c\n",caractere); printf("O string digitado foi:%s\n",string); }
Condicional if
#include <stdio.h> int main() { int x; printf("Qual a sua idade ?"); scanf("%d",&x); if(x>=18) printf("Legal, com %d anos, você é maior de idade\n",x); else printf("Entendi, com %d anos, faltam %d para você se tornar maior de idade\n",x,18-x); }
Condicional Switch
#include <stdio.h> #include <stdlib.h> int main() { int x; printf("MENU\n"); printf("---------------------\n"); printf("1 - Opção\n"); printf("2 - Opção\n"); printf("3 - Sair\n"); scanf("%c",&x); switch(x) { case 1: printf("Você escolheu a opção 1\n"); break; case 2: printf("Você escolheu a opção 2\n"); break; case 3: exit(0); break; default: printf("Opção inválida"); break; } }
Repetições com for
#include <stdio.h> int main() { int i; for(i = 0;i<10;i++) { printf("Imprimindo pela %i vez\n",i+1); } }
Repetições com while
#include <stdio.h> int main() { int i = 0; while(i<10) { printf("Imprimindo pela %i vez\n",i+1); i++; } }
Repetições com do…while
#include <stdio.h> int main() { int i = 0; do { printf("Imprimindo pela %i vez\n",i+1); i++; }while(i<10); }
Vetores
int main(void) { int i,j; int array[10]; printf("\n######## vetor de int ##########\n"); for(i = 0;i<10;i++) { array[i] = i*2; } for(i = 0;i<10;i++) { printf("%i -> array[%i]=%i\n",&array[i],i,array[i]); } }
Matrizes
#include <stdio.h> int main() { int matriz[10][3]; int i,j; for(i=0;i<10;i++) { for(j=0;j<3;j++) { matriz[i][j] = i+j; } } for(i=0;i<10;i++) { for(j=0;j<3;j++) { printf("Matriz[%d][%d] = %d\n",i,j,matriz[i][j]); } } }
Exemplo de Menu Textual
#include <stdio.h> int main() { char opcao; do { system("cls"); //no linuc subsituir cls por clear printf("####################################################\n"); printf("####################### MENU #######################\n"); printf("####################################################\n"); printf(" 1 - para coisar\n"); printf(" 2 - para esbrugar\n"); opcao = getch(); switch(opcao) { case '1': printf("Coisando...\n"); break; case '2': printf("Esbrugando...\n"); break; default: printf("Opcao Invalida\n"); break; } printf("\nVoltar ao menu? (s/n):"); opcao = getch(); }while(opcao == 's' || opcao == 'S'); }
Ordenando um Vetor(Força Bruta)
#include<stdio.h> int main(){ int idade[5];//declarei 5 variaveis do tipo inteiro int x; //Lê todas as variaveis do vetor for(x=0;x<5;x++){ printf("digite sua idade\n"); scanf("%i",& idade[x]); } //Imprime as variaveis do vetor for(x=0;x<5;x++){ printf("%i",idade[x]); if(x!=3 && x!=4) printf(", "); if(x==3) printf(" e "); if(x==4) printf("."); } //Ordena as variaveis do vetor int y; int temporaria; for(x=0;x<5;x++){ for(y=0;y<5;y++){ if(idade[y]>idade[y+1]) { temporaria = idade[y]; idade[y] = idade[y+1]; idade[y+1] = temporaria; } } } printf("\n"); //Imprime as variaveis do vetor for(x=0;x<5;x++){ printf("%i",idade[x]); if(x!=3 && x!=4) printf(", "); if(x==3) printf(" e "); if(x==4) printf("."); } system("pause"); }
Estrutura
#include <stdio.h> struct ponto { int x; int y; }; int main() { struct ponto p1; p1.x = 0; p1.y = 15; printf("P1:(%d,%d)\n",p1.x,p1.y); }
Jogo da Velha com funções
#include <stdio.h> char m[3][3]; char jogador1; char jogador2; void limpar_jogo() { int i,j; for(i=0;i<3;i++){ for(j=0;j<3;j++){ m[i][j]=' '; } } } void imprime_jogo(){ int i,j; for(i=0;i<3;i++){ for(j=0;j<3;j++){ if(j==2){ printf("%c ",m[i][j]); } else{ printf("%c |",m[i][j]); } } if(i!=2){ printf("\n--------\n"); }else{ printf("\n"); } } } void escolha_de_jogador() { printf("escolha x ou o\n"); scanf("%c",&jogador1); if(jogador1=='x'){ jogador2= 'o'; }else{ jogador2='x'; } } void vez_jogador(int jogador) { int i,j; printf("jogador%i qual a linha:\n",jogador); scanf("%i",&i); printf("Jogador%i qual a coluna:\n ",jogador); scanf("%i",&j); while(m[i][j]!=' '){ printf("por favor jogador,escolha outra posiçao:\n"); scanf("%i",&i); scanf("%i",&j); } if(jogador==1) m[i][j]=jogador1; else m[i][j]=jogador2; imprime_jogo(); } int testeEmpate() { int contador = 0; int i, j; for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(m[i][j]==' ') contador++; } } if(contador==0) return 1; else return 0; } void testar_jogo(int i){ if(i==1) { //linha 0 if(m[0][0]==jogador1 && m[0][1]==jogador1 && m[0][2]==jogador1) { printf("O jogador 1 Ganhou\n"); exit(1); } //linha 1 if(m[1][0]==jogador1 && m[1][1]==jogador1 && m[1][2]==jogador1) { printf("O jogador 1 Ganhou\n"); exit(1); } //linha 2 if(m[2][0]==jogador1 && m[2][1]==jogador1 && m[2][2]==jogador1) { printf("O jogador 1 Ganhou\n"); exit(1); } //col 0 if(m[0][0]==jogador1 && m[1][0]==jogador1 && m[2][0]==jogador1) { printf("O jogador 1 Ganhou\n"); exit(1); } //col 1 if(m[0][1]==jogador1 && m[1][1]==jogador1 && m[2][1]==jogador1) { printf("O jogador 1 Ganhou\n"); exit(1); } //col 2 if(m[0][2]==jogador1 && m[1][2]==jogador1 && m[2][2]==jogador1) { printf("O jogador 1 Ganhou\n"); exit(1); } //diagonal primaria if(m[0][0]==jogador1 && m[1][1]==jogador1 && m[2][2]==jogador1) { printf("O jogador 1 Ganhou\n"); exit(1); } //diagonal secundaria if(m[0][2]==jogador1 && m[1][1]==jogador1 && m[2][0]==jogador1) { printf("O jogador 1 Ganhou\n"); exit(1); } }else { //linha 0 if(m[0][0]==jogador2 && m[0][1]==jogador2 && m[0][2]==jogador2) { printf("O jogador 2 Ganhou\n"); exit(1); } //linha 1 if(m[1][0]==jogador2 && m[1][1]==jogador2 && m[1][2]==jogador2) { printf("O jogador 2 Ganhou\n"); exit(1); } //linha 2 if(m[2][0]==jogador2 && m[2][1]==jogador2 && m[2][2]==jogador2) { printf("O jogador 2 Ganhou\n"); exit(1); } //col 0 if(m[0][0]==jogador2 && m[1][0]==jogador2 && m[2][0]==jogador2) { printf("O jogador 2 Ganhou\n"); exit(1); } //col 1 if(m[0][1]==jogador2 && m[1][1]==jogador2 && m[2][1]==jogador2) { printf("O jogador 2 Ganhou\n"); exit(1); } //col 2 if(m[0][2]==jogador2 && m[1][2]==jogador2 && m[2][2]==jogador2) { printf("O jogador 2 Ganhou\n"); exit(1); } //diagonal primaria if(m[0][0]==jogador2 && m[1][1]==jogador2 && m[2][2]==jogador2) { printf("O jogador 2 Ganhou\n"); exit(1); } //diagonal secundaria if(m[0][2]==jogador2 && m[1][1]==jogador2 && m[2][0]==jogador2) { printf("O jogador 2 Ganhou\n"); exit(1); } } if(testeEmpate()==1) { printf("Jogo empatado!\n"); exit(1); } } int main(){ int i,j; limpar_jogo(); imprime_jogo(); escolha_de_jogador(); while(1){ vez_jogador(1); testar_jogo(1); vez_jogador(2); testar_jogo(2); } }
page revision: 27, last edited: 24 Aug 2011 14:34







lindo
brigado!
ae Aquiles, me tira uma duvida por favor. preciso escrever um programa que fornece um menu para o usuário escolher se ele quer calcular o fatorial de um numero ou uma potencia. minha duvida ta em como montar o menu, tem como me ajudar???
grato desde ja.
Variáveis
#include <stdio.h>
int main() {
int inteiro;
float flutuante;
char caracter;
int arrayDeInteiros[10];
float arrayDeFlutuantes[5];
char arrayDeCaracter[50];
}
Saída da Dados
#include <stdio.h>
int main() {
printf("%i\n",2);
printf("%f\n",3.4);
printf("%c\n",'a');
printf("%s\n","Texto");
}
Entrada de Dados
#include <stdio.h>
int main() {
int inteiro;
float flutuante;
char caractere;
char string[50];
scanf("%i",&inteiro);
scanf("%f",&flutuante);
getchar();
scanf("%c",&caractere);
getchar();
scanf("%s",&string);
printf("O inteiro digitado foi: %i\n",inteiro);
printf("O flutuante digitado foi:%f\n",flutuante);
printf("O caractere digitado foi:%c\n",caractere);
printf("O string digitado foi:%s\n",string);
}
Condicional if
#include <stdio.h>
int main() {
int x;
printf("Qual a sua idade ?");
scanf("%d",&x);
if(x>=18)
printf("Legal, com %d anos, você é maior de idade\n",x);
else
printf("Entendi, com %d anos, faltam %d para você se tornar maior de idade\n",x,18-x);
}
Condicional Switch
#include <stdio.h>
#include <stdlib.h>
int main() {
int x;
printf("MENU\n");
printf("-----\n");
printf("1 - Opção\n");
printf("2 - Opção\n");
printf("3 - Sair\n");
scanf("%c",&x);
switch(x) {
case 1:
printf("Você escolheu a opção 1\n");
break;
case 2:
printf("Você escolheu a opção 2\n");
break;
case 3:
exit(0);
break;
default:
printf("Opção inválida");
break;
}
}
Repetições com for
#include <stdio.h>
int main() {
int i;
for(i = 0;i<10;i++) {
printf("Imprimindo pela %i vez\n",i+1);
}
}
Repetições com while
#include <stdio.h>
int main() {
int i = 0;
while(i<10) {
printf("Imprimindo pela %i vez\n",i+1);
i++;
}
}
Repetições com do…while
#include <stdio.h>
int main() {
int i = 0;
do {
printf("Imprimindo pela %i vez\n",i+1);
i++;
}while(i<10);
}
Vetores
int main(void) {
int i,j;
int array[10];
printf("\n######## vetor de int ##########\n");
for(i = 0;i<10;i++) {
array[i] = i*2;
}
for(i = 0;i<10;i++) {
printf("%i -> array[%i]=%i\n",&array[i],i,array[i]);
}
}
Matrizes
#include <stdio.h>
int main() {
int matriz[10][3];
int i,j;
for(i=0;i<10;i++) {
for(j=0;j<3;j++) {
matriz[i][j] = i+j;
}
}
for(i=0;i<10;i++) {
for(j=0;j<3;j++) {
printf("Matriz[%d][%d] = %d\n",i,j,matriz[i][j]);
}
}
}
Exemplo de Menu Textual
#include <stdio.h>
int main() {
char opcao;
do {
system("cls"); //no linuc subsituir cls por clear
printf("####################################################\n");
printf("####################### MENU #######################\n");
printf("####################################################\n");
printf(" 1 - para coisar\n");
printf(" 2 - para esbrugar\n");
opcao = getch();
switch(opcao) {
case '1':
printf("Coisando…\n");
break;
case '2':
printf("Esbrugando…\n");
break;
default:
printf("Opcao Invalida\n");
break;
}
printf("\nVoltar ao menu? (s/n):");
opcao = getch();
}while(opcao == 's' || opcao == 'S');
}
Ordenando um Vetor(Força Bruta)
#include<stdio.h>
int main(){
int idade[5];//declarei 5 variaveis do tipo inteiro
int x;
//Lê todas as variaveis do vetor
for(x=0;x<5;x++){
printf("digite sua idade\n");
scanf("%i",& idade[x]);
}
//Imprime as variaveis do vetor
for(x=0;x<5;x++){
printf("%i",idade[x]);
if(x!=3 && x!=4)
printf(", ");
if(x==3)
printf(" e ");
if(x==4)
printf(".");
}
//Ordena as variaveis do vetor
int y;
int temporaria;
for(x=0;x<5;x++){
for(y=0;y<5;y++){
if(idade[y]>idade[y+1]) {
temporaria = idade[y];
idade[y] = idade[y+1];
idade[y+1] = temporaria;
}
}
}
printf("\n");
//Imprime as variaveis do vetor
for(x=0;x<5;x++){
printf("%i",idade[x]);
if(x!=3 && x!=4)
printf(", ");
if(x==3)
printf(" e ");
if(x==4)
printf(".");
}
system("pause");
}
Estrutura
#include <stdio.h>
struct ponto {
int x;
int y;
};
int main() {
struct ponto p1;
p1.x = 0;
p1.y = 15;
printf("P1:(%d,%d)\n",p1.x,p1.y);
}
Jogo da Velha com funções
#include <stdio.h>
char m[3][3];
char jogador1;
char jogador2;
void limpar_jogo() {
int i,j;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
m[i][j]=' ';
}
}
}
void imprime_jogo(){
int i,j;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
if(j==2){
printf("%c ",m[i][j]);
}
else{
printf("%c |",m[i][j]);
}
}
if(i!=2){
printf("\n-—-\n");
}else{
printf("\n");
}
}
}
void escolha_de_jogador() {
printf("escolha x ou o\n");
scanf("%c",&jogador1);
if(jogador1=='x'){
jogador2= 'o';
}else{
jogador2='x';
}
}
void vez_jogador(int jogador) {
int i,j;
printf("jogador%i qual a linha:\n",jogador);
scanf("%i",&i);
printf("Jogador%i qual a coluna:\n ",jogador);
scanf("%i",&j);
while(m[i][j]!=' '){
printf("por favor jogador,escolha outra posiçao:\n");
scanf("%i",&i);
scanf("%i",&j);
}
if(jogador==1)
m[i][j]=jogador1;
else
m[i][j]=jogador2;
imprime_jogo();
}
int testeEmpate() {
int contador = 0;
int i, j;
for(i=0;i<3;i++) {
for(j=0;j<3;j++) {
if(m[i][j]==' ')
contador++;
}
}
if(contador==0)
return 1;
else
return 0;
}
void testar_jogo(int i){
if(i==1) {
//linha 0
if(m[0][0]==jogador1 && m[0][1]==jogador1 && m[0][2]==jogador1) {
printf("O jogador 1 Ganhou\n");
exit(1);
}
//linha 1
if(m[1][0]==jogador1 && m[1][1]==jogador1 && m[1][2]==jogador1) {
printf("O jogador 1 Ganhou\n");
exit(1);
}
//linha 2
if(m[2][0]==jogador1 && m[2][1]==jogador1 && m[2][2]==jogador1) {
printf("O jogador 1 Ganhou\n");
exit(1);
}
//col 0
if(m[0][0]==jogador1 && m[1][0]==jogador1 && m[2][0]==jogador1) {
printf("O jogador 1 Ganhou\n");
exit(1);
}
//col 1
if(m[0][1]==jogador1 && m[1][1]==jogador1 && m[2][1]==jogador1) {
printf("O jogador 1 Ganhou\n");
exit(1);
}
//col 2
if(m[0][2]==jogador1 && m[1][2]==jogador1 && m[2][2]==jogador1) {
printf("O jogador 1 Ganhou\n");
exit(1);
}
//diagonal primaria
if(m[0][0]==jogador1 && m[1][1]==jogador1 && m[2][2]==jogador1) {
printf("O jogador 1 Ganhou\n");
exit(1);
}
//diagonal secundaria
if(m[0][2]==jogador1 && m[1][1]==jogador1 && m[2][0]==jogador1) {
printf("O jogador 1 Ganhou\n");
exit(1);
}
}else {
//linha 0
if(m[0][0]==jogador2 && m[0][1]==jogador2 && m[0][2]==jogador2) {
printf("O jogador 2 Ganhou\n");
exit(1);
}
//linha 1
if(m[1][0]==jogador2 && m[1][1]==jogador2 && m[1][2]==jogador2) {
printf("O jogador 2 Ganhou\n");
exit(1);
}
//linha 2
if(m[2][0]==jogador2 && m[2][1]==jogador2 && m[2][2]==jogador2) {
printf("O jogador 2 Ganhou\n");
exit(1);
}
//col 0
if(m[0][0]==jogador2 && m[1][0]==jogador2 && m[2][0]==jogador2) {
printf("O jogador 2 Ganhou\n");
exit(1);
}
//col 1
if(m[0][1]==jogador2 && m[1][1]==jogador2 && m[2][1]==jogador2) {
printf("O jogador 2 Ganhou\n");
exit(1);
}
//col 2
if(m[0][2]==jogador2 && m[1][2]==jogador2 && m[2][2]==jogador2) {
printf("O jogador 2 Ganhou\n");
exit(1);
}
//diagonal primaria
if(m[0][0]==jogador2 && m[1][1]==jogador2 && m[2][2]==jogador2) {
printf("O jogador 2 Ganhou\n");
exit(1);
}
//diagonal secundaria
if(m[0][2]==jogador2 && m[1][1]==jogador2 && m[2][0]==jogador2) {
printf("O jogador 2 Ganhou\n");
exit(1);
}
}
if(testeEmpate()==1) {
printf("Jogo empatado!\n");
exit(1);
}
}
int main(){
int i,j;
limpar_jogo();
imprime_jogo();
escolha_de_jogador();
while(1){
vez_jogador(1);
testar_jogo(1);
vez_jogador(2);
testar_jogo(2);
}
}
Obrigado!
E ai, eu to tentando criar um tipo de placar
que utilize funções
sendo que esse placar, seria com 4 fontes utilizando da tabela ASCII!
poderia me ajudar com isso?
só completando, o usuario escolheria a fonte que ele quer, e assim, ele vai pontuando para o "publico", e esse placar tem que ser visto de todos os lados!
como se estivesse num estadio por exemplo, e esse placar estivesse no centro do estadio, e desse para ser visto dos 4 lados!
ve se tu consegue me ajudar parceiro!
ththgfhhjv
Post preview:
Close preview