Linguagem C

Mostrando apenas artigos deste assunto.

Display de 7 Segmentos na porta Paralela(Linguagem C)

publicado em 30 Aug 2010 19:52 por Munif Gebara Junior

int main(){    
//            0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
    int v[]={ 63,  6, 91, 79,102,109,125,  7,127,111,119,124, 57, 94,121,113};
    int t=600;
    for(;;)
    {
           for (int i=0;i<16;i++){
              printf ("%d \n",i);
              outportb(0x378,v[i]);
              getch();
           }
    }
    getch();
}

displayParalela.zip (Arquivo do Artigo Display de 7 Segmentos na porta Paralela) tamanho:7329 bytes Upload em 30/08/2010 19:53

Executando Arquivo Externo(Linguagem C)

publicado em 26 Aug 2010 19:55 por Munif Gebara Junior

Em alguams situações é necessário executar um programa externo a linguagem C. Um caso é o programa de árvores que gera o arquivo necessário para desenhar a árvore no Dotty. O projeto em anexo utiliza a função system para isto.

...
case 3:printf ("Gerando arquivo...");
      geraDotArquivo(raiz);
      printf ("OK\n");
      system("\"c:\\Program Files (x86)\\Graphviz2.26.3\\bin\\dotty.exe\" d:\\arvore.gpz");
break;
...

arvores.zip (Arquivo do Artigo Executando Arquivo Externo) tamanho:15528 bytes Upload em 26/08/2010 19:56

Porta Paralela(Linguagem C)

publicado em 23 Aug 2010 20:18 por Munif Gebara Junior

main(){
    for (;;)
    {
      printf ("Acende\n");  
      outportb(0x378,255);
      delay(500);
      printf ("Mais ou Menos\n");
      outportb(0x378,170);
      delay(500);
      printf ("Apaga\n");
      outportb(0x378,0);
      delay(500);
     }
}

kitPortaParalela.zip (Kit Porta Paralela) tamanho:7323 bytes Upload em 23/08/2010 20:19

Revisao EQ(Linguagem C)

publicado em 19 Aug 2010 17:07 por Munif Gebara Junior

Exercícios resolvidos na revisão de Engenharia Química

duvidasEQ.zip (Arquivo do Artigo Revisao EQ) tamanho:81252 bytes Upload em 19/08/2010 17:07

Prova Automacao 2 bimestre A(Linguagem C)

publicado em 26 Jul 2010 20:15 por Munif Gebara Junior

#include 
#include 

int main()
{
      int timeA1,timeA2,timeA3;
      int timeB ,timeC ,timeD;
      int pontos=0,saldo;
      
      printf ("Digite o placar de Time A x Time B:");
      scanf  ("%d %d",&timeA1,&timeB);
      
      printf ("Digite o placar de Time A x Time C:");
      scanf  ("%d %d",&timeA2,&timeC);
      
      printf ("Digite o placar de Time A x Time D:");
      scanf  ("%d %d",&timeA3,&timeD);
      
      saldo=timeA1+timeA2+timeA3-timeB-timeC-timeD;
      
      if (timeA1>timeB){
         pontos+=3;
      }
      else if (timeA1==timeB){
         pontos+=1;
      }
      
      if (timeA2>timeC){
         pontos+=3;
      }
      else if (timeA2==timeC){
         pontos+=1;
      }
      
      if (timeA3>timeD){
         pontos+=3;
      }
      else if (timeA3==timeD){
         pontos+=1;
      }
      printf ("Total de pontos %d\n",pontos);
      printf ("Saldo de gols %d\n",saldo);
      getch();
}

prova.zip (Arquivo do Artigo Prova Automacao 2 bimestre A) tamanho:11374 bytes Upload em 26/07/2010 20:16
prova.zip (Arquivo do Artigo Prova Automacao 2 bimestre Turma B ) tamanho:11960 bytes Upload em 26/07/2010 22:01

Struct(Linguagem C)

publicado em 18 Jun 2010 22:16 por Munif Gebara Junior

struct taluno{
    char nome[40];
    float nota;
    int faltas;
};

structs.zip (Cadastrinho) tamanho:12901 bytes Upload em 18/06/2010 22:17

Funções(Linguagem C)

publicado em 14 May 2010 21:46 por Munif Gebara Junior

int dobro(int n);
float media (float a, float b);
void olaMundo();
float pi();

int main()
{
    printf ("%d",dobro(2));
}

int dobro(int n){
   return n*2;
}

float media (float a, float b){
    float m;
    m=(a+b)/2;
    return m;
}

float pi(){
    return 3.1415;
}

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


char sim(){
    return 's';
}

main.cpp (Arquivo do Artigo Funções) tamanho:1575 bytes Upload em 14/05/2010 21:47
ListaFuncoesC.doc (Lista de Funções) tamanho:24576 bytes Upload em 25/05/2010 15:44
listafuncoes1a4.zip (RespostasDaLista) tamanho:19655 bytes Upload em 25/05/2010 16:57
funcoes.zip (Exemplos de Funcoes Simples) tamanho:7027 bytes Upload em 02/08/2010 19:55
funcoes2.zip (Mais exemplos de Funções) tamanho:8178 bytes Upload em 02/08/2010 20:28

Struct e Ponteiros(Linguagem C)

publicado em 07 Sep 2009 08:28 por Munif Gebara Junior

Struct e ponteiros são estruturas poderosas na Linguagem C.

Struct trata de dados de diferentes natureza, e, por isso, de diferentes tipos primitivos. O conceito de agregado de dados heterogêneos nos permite envolver em uma única estrutura, dados de tipos primitivos diferentes.

Para se criar uma estrutura heterogênea, cria-se um novo tipo de dado. A partir disto, pode-se declarar variáveis como sendo deste novo tipo criado e utilizar dentro do algoritmo. Este tipo de estrutura também éconhecida como registro, e cada um dos dados armazenados dentro de um registro é chamado de campo.[1]

A alocação dinâmica é o processo que aloca memória em tempo de execução. Ela é utilizada quando não se sabe ao certo quanto de memória será necessário para o armazenamento das informações, podendo ser determinadas em tempo de execução conforme a necessidade do programa. Dessa forma evita-se o desperdício de memória.[2]

No padrão C ANSI existem 4 funções para alocações dinâmica pertencentes a biblioteca stdlib.h. São elas malloc(), calloc(), realloc() e free(). Sendo que as mais utilizadas são as funções malloc() e free().

  struct t_aluno
  {
    int ra;
    char nome[50];
    float nota;       
  };   //Precisa de ponto e vírgula

  struct t_no
  {
    t_aluno dados;
    t_no* prox;
  };
  ...
  void inserePilha(t_no* &pt,t_aluno al)
  {
     t_no* novo=(t_no*) malloc(sizeof (t_no));
     novo->dados=al;
     novo->prox=pt;
     pt=novo;
  }
  ...

[1]"Aspirado" do material do professor Yandre Maldonado e Gomes da Costa

[2]Link Original Julio Battisti

fontes.rar (Arquivo do Artigo Struct e Ponteiros) tamanho:2347 bytes Upload em 06/09/2009 16:37
arvores.rar (Exemplos de Árvores binárias ordenadas e AVL) tamanho:2047 bytes Upload em 12/09/2009 07:26
Ponteiros.zip (Exemplos Novos) tamanho:355049 bytes Upload em 17/08/2010 20:17

Vetores(Linguagem C)

publicado em 05 Jun 2009 20:26 por Munif Gebara Junior

Um vetor é um sequência de valores de um mesmo tipo que podem ser acessados a partir da sua posição.

Exemplo: declaraçao de um vetor de inteiros, com 10 elementos:


...
int v[10];
...

Os elementos de um vetor podem ser acessados a partir da sua posição, ou índice, e usados no programa como qualquer outra variável. Os índices de um vetor de N elementos variam de 0 a N-1 (0 corresponde ao primeiro elemento e N-1 corresponde ao último).

Exemplos


...
v[0] = 1;
v[1] = 2;
v[2] = v[0] + v[1];
...

O índice para acesso ao elemento de um vetor pode ser uma variável ou uma expressão inteira. Exemplos:

...
for(i=0; i < N; i++) v[i] = 0;
...
v[n-k+1] = v[n-k+i];
...

Outro Exemplo


/*
leitura de uma sequência de 10 valores e
determinação do maior e menor elemento
*/
#include <stdio.h>
int main()
{
int t[10];
int i, max, min;

/* leitura dos elementos do vetor */
for(i=0; i<10; i++)scanf("%d", &t[i]);

max = t[0]; min = max;
for(i=1; i<10; i++)
{
if(t[i] > max) max = v[i];
if(t[i] < min) min = v[i];
}

printf("maior valor: %d e menor valor: %d \n",max,min);

}

Valor Inicial de um Vetor

Ao declarar uma variável é possível definir um valor inicial para a mesma. Exemplo:


int k = 21;

Isso é possível também no caso de um vetor e nesse caso, a sequência de valores aparece entre '{' e '}', separados por vírgula. Exemplo:

 
int dias[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }

Vetores Multidimensionais

Em C é possível declarar um vetor no qual cada elemento é por sua vez um vetor. Através desse recurso é possível criar vetores multidimensionais. Uma matriz bidimensional é basicamente um vetor em que cada elemento é um vetor. Exemplo: #include <stdio.h>

	int main()
{
int tab[5][10];
int i,j,k;
k = 1;

/* criação da tabela */
for(i = 0; i < 5; i++)
for(j = 0; j < 10; j++) tab[i][j] = k++;

/* escrita da tabela */
for(i = 0; i < 5; i++)
{
for(j = 0; j < 10; j++) printf(" %d ",tab[i][j]);
printf("\n");
}
}

Outros tipos de dados

Os exemplos mostrados até agora manipulavam valores (constantes e variáveis) do tipo inteiro. Em C os tipos básicos de dados são os seguintes:

  • char - representa um caracter
  • int - representa um valor inteiro simples
  • float - um valor em ponto flutuante, com precisão simples
  • double - um valor em ponto flutuante, com precisão dupla.
Além disso, os modificadores short e long são aplicáveis ao tipo inteiro, indicando inteiros curtos ou inteiros longos.

Exemplos


#include <stdio.h>

int main()
{
float valor = 100.0;
float taxa = 0.005;
int n = 12;
int i;
printf("valor inicial: %7.2f \n",valor);
for(i=0; i < n; i++) valor += valor*taxa;
printf("valor final: %7.2f \n",valor);
}

Neste exemplo, no comando printf, o especificador de formato "%7.2f" está sendo usado para formatar um valor do tipo float, ocupando um campo de 7 caracteres, com duas casas após o ponto decimal.


#include <stdio.h>

int main()
{
char x;
for(x = 'a'; x <= 'z'; x++) printf("%c",x);
printf("\n");
}

Neste exemplo, o operando ++ está sendo aplicado a uma variável do tipo char. O resultado dessa operação é o "caracter seguinte" na sequência de caracteres da máquina.

Ainda neste exemplo, a sequência o especificador de formato "%c" está sendo usado para indicar que a variável correspondente será escrita como um caracter.

Retirado da página do professor prof. Fernando Vanini em http://www.dcc.unicamp.br/~vanini/inf512

vetores.zip (Exemplo de Vetores) tamanho:9038 bytes Upload em 05/06/2009 20:27
aula31052010.zip (Exemplo de Exercício) tamanho:7124 bytes Upload em 31/05/2010 19:42
ListaVetor.doc (Lista de exercícios) tamanho:27648 bytes Upload em 31/05/2010 19:58
TrocoVetores.zip (Problema do Troco com Vetores) tamanho:7026 bytes Upload em 31/05/2010 20:32
listaVetoresResolvido1.zip (Primeiro exercício resolvido) tamanho:6933 bytes Upload em 31/05/2010 22:48
vetores.zip (Arquivo Mecatronica) tamanho:13256 bytes Upload em 01/06/2010 14:28
vetores1ao3.zip (Lista 1 ao 3 Resolvidos) tamanho:19691 bytes Upload em 07/06/2010 19:52
vet04.zip (Exercico 4 Resolvido) tamanho:918 bytes Upload em 07/06/2010 20:47
vet567.zip (Lista 5 ao 7 Resolvidos) tamanho:20343 bytes Upload em 08/06/2010 16:47
vet8ao15.zip (Exercícios do 8 ao 15) tamanho:51620 bytes Upload em 14/06/2010 20:25

Introdução(Linguagem C)

publicado em 16 Apr 2009 06:32 por Munif Gebara Junior

A linguagem C foi criada por Dennis Ritchie, em 1972, no centro de Pesquisas da Bell Laboratories. Sua primeira utilização importante foi a reescrita do Sistema Operacional UNIX, que até então era escrito em assembly.

Em meados de 1970 o UNIX saiu do laboratório para ser liberado para as universidades. Foi o suficiente para que o sucesso da linguagem atingisse proporções tais que, por volta de 1980, já existiam várias versões de compiladores C oferecidas por várias empresas, não sendo mais restritas apenas ao ambiente UNIX, porém compatíveis com vários outros sistemas operacionais.

O C é uma linguagem de propósito geral, sendo adequada à programação estruturada. No entanto é mais utilizada escrever compiladores, analisadores léxicos, bancos de dados, editores de texto, etc..

A linguagem C pertence a uma família de linguagens cujas características são: portabilidade, modularidade, compilação separada, recursos de baixo nível, geração de código eficiente, confiabilidade, regularidade, simplicidade e facilidade de uso.

Retirado de INTRODUÇÃO A LINGUAGEM C GACLI - CENTRO DE COMPUTAÇÃO - UNICAMP

Uma IDE livre para Windows é o Bloodshed Dev-C++ http://www.bloodshed.net/dev/devcpp.html

tutorialc.pdf (GACLI - CENTRO DE COMPUTAÇÃO - UNICAMP) tamanho:71435 bytes Upload em 16/04/2009 06:28
video1.zip (Criando "Ola Mundo" com DEV-C++) tamanho:1527952 bytes Upload em 16/04/2009 06:36
Lista1Bimestre2.pdf (Lista 1 de exercícios básicos. ) tamanho:27363 bytes Upload em 16/04/2009 06:39
introducaoC.rar (Alguns exemplos) tamanho:9223 bytes Upload em 15/05/2009 20:30
lista de exercicios 1.pdf (Primeira lista) tamanho:8075 bytes Upload em 15/05/2009 20:04
Lista2.pdf (Segunda Lista) tamanho:27363 bytes Upload em 28/05/2009 21:37
fluxo.rar (Exemplos de IF) tamanho:12481 bytes Upload em 05/04/2010 20:23
devcpp-4.9.9.2_setup.exe (DEV CPP) tamanho:9326468 bytes Upload em 05/04/2010 20:37
lista1exe1a3.rar (Resolução da Lista) tamanho:17657 bytes Upload em 12/04/2010 20:47
exercicios05-13.zip (Resolução da Lista) tamanho:38372 bytes Upload em 19/04/2010 20:13
main.cpp (Exemplos Iniciais) tamanho:1374 bytes Upload em 04/05/2010 22:05
iniciandoC.zip (Exemplos Engenharia Química) tamanho:39564 bytes Upload em 27/05/2010 16:59