segunda-feira, fevereiro 28, 2011

Programas

prog1 lista 4


#include <stdio.h>

int main(void)
{
int x[10];
int y[10];
// int x[10], y[10];
int i;
int tmp;
// int i, tmp;

for ( i = 0 ; i < 10 ; i++ )
{
printf("Digite valor");
scanf("%d", &tmp);
x[i] = tmp;
}

// for ( i = 0 ; i < 10 ; i++ )
// {
// printf("%d\n", x[i]);
// }

for ( i = 0 ; i < 10 ; i++ )
{
y[9-i] = x[i];
}

for ( i = 0 ; i < 10 ; i++ )
{
printf("%d\n", y[i]);
}


return 0;

}



prog3 lista 4



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

int main(void)
{
int a[10];
int X;
// int x[10], y[10];
int i;
int tmp;
// int i, tmp;

for ( i = 0 ; i < 10 ; i++ )
{
printf("Digite valor");
scanf("%d", &tmp);
a[i] = tmp;
}

printf("Digite X");
scanf("%d", &X);

for ( i = 0 ; i < 10 ; i++ )
{
if ( X == a[i] )
{
printf("Achei %d no indice %d\n", X, i);
exit(0);
}
}
printf("Não\n");
}

Lista 4 de Programação em C

Esta é a lista 4, que deverá ser entregue em data a combinar.

Lista 4

sábado, fevereiro 26, 2011

Trabalhos de Sistemas Distribuídos Entregues

Entregaram os trabalhos os alunos:

Alexandre
Oscar
Gustavo
Zacarias



quarta-feira, fevereiro 23, 2011

prog2.c


#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <complex.h>
#include <string.h>

#include <gsl/gsl_complex.h>
#include <gsl/gsl_complex_math.h>
#include <gsl/gsl_vector_complex.h>
#include <gsl/gsl_vector.h>
#include <gsl/gsl_errno.h>
#include <gsl/gsl_fft_complex.h>

int main(void)
{
int N = 1024;
int i;
double Tmin, Tmax, deltaT;
double f,A, B, w;
double t[N], g[N], l[N], h[N];

Tmin = -16.0; /* 16 vezes Pi */
Tmax = 16.0;
deltaT = 32.0/N;
f = 2.0;
A = 1.0;
B = 0.01;
w = 0.04;

for ( i = 0 ; i < N ; i++ )
{
t[i] = (Tmin + i*deltaT)*2.0*M_PI;
g[i] = A*sin(f*t[i]);
}


for ( i = 0 ; i < N ; i++ )
{
h[i] = B*sin(w*t[i]);
}

for ( i = 0 ; i < N ; i++ )
{
l[i] = h[i]*g[i];
}

for ( i = 0 ; i < N ; i++ )
{
printf("%f\t%f\n", t[i], l[i]);
}


/* Kmin = -1/2*deltaX */
// Fmin = -N/64.0;
// Fmax = N/64.0;
// deltaF = 1.0/32.0;

/* Gerar um seno, com uma dada frequencia (2Hz, por exemplo) */


}

prog1.c


#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <complex.h>
#include <string.h>

#include <gsl/gsl_complex.h>
#include <gsl/gsl_complex_math.h>
#include <gsl/gsl_vector_complex.h>
#include <gsl/gsl_vector.h>
#include <gsl/gsl_errno.h>
#include <gsl/gsl_fft_complex.h>

int main(void)
{
int N = 1024;
int i;
double Tmin, Tmax, deltaT;
double f,A;
double t[N], g[N];

Tmin = -16.0; /* 16 vezes Pi */
Tmax = 16.0;
deltaT = 32.0/N;
f = 2.0;
A = 1.0;

for ( i = 0 ; i < N ; i++ )
{
t[i] = (Tmin + i*deltaT)*2.0*M_PI;
g[i] = A*sin(f*t[i]);
}

for ( i = 0 ; i < N ; i++ )
{
printf("%f\t%f\n", t[i], g[i]);
}


/* Kmin = -1/2*deltaX */
// Fmin = -N/64.0;
// Fmax = N/64.0;
// deltaF = 1.0/32.0;

/* Gerar um seno, com uma dada frequencia (2Hz, por exemplo) */


}

Programação em C - Verificador de números primos GRANDES


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

// Versão de números grandes de um verificador de números primos

int main(int argc, char* argv[])
{
unsigned long long int i;
unsigned long long int num = strtoull(argv[1], NULL, 10);

for ( i = 2 ; i < num ; i++ )
{
if ( num % i == 0 )
{
printf("num = %llu NÃO é primo\n", num);
exit(0);
}
}
printf("num = %llu é primo\n", num);
return 0;
}

// Compilar: gcc prog.c -o prog.exe
// Rodar: ./prog.exe numero
// Exemplo: ./prog.exe 71
// Saida : 71 é primo

Programação em C - Verificador de números primos


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

// Versão light de um verificador de números primos

int main(int argc, char* argv[])
{
int i;
int num = atoi(argv[1]);

for ( i = 2 ; i < num ; i++ )
{
if ( num % i == 0 )
{
printf("num = %d NÃO é primo\n", num);
exit(0);
}
}
printf("num = %d é primo\n", num);
return 0;
}

// Compilar: gcc prog.c -o prog.exe
// Rodar: ./prog.exe numero
// Exemplo: ./prog.exe 71
// Saida : 71 é primo

Programação em C - Lista 3, questão 3


#include <stdio.h>

int main(void)
{
unsigned long long int num = 600851475143ULL;
unsigned long long int j;

for ( j = 3 ; j <  num ; j++ )
{
if ( num % j == 0 )
{
num = num/j;
printf("%llu\t%llu\n", j, num);
}
}
printf("%llu\n", num);
return 0;
}

quinta-feira, fevereiro 17, 2011

Programando em C

Para começar a programar em C, basta ler o capítulo 1 da apostila que está no blog. Mas vou dar algumas explicações a mais, mas realmente ESTÁ NO LIVRO.

- Costumo digitar meus códigos num editor de texto comum, a famosa "folha em branco". Não pode ser editor tipo broffice, word, e afins. Tem que ser do estilo kate (que usei em aula), gedit, vim, emacs, notepad, wordpad, ou qualquer editor de código que você encontrar na internet. Neste momento inicial, NÃO RECOMENDO o uso de um IDE (ambiente de desenvolvimento). Visto que vocês teriam que aprender a programar e usar o IDE, o que é muito trabalho. Quem instala o Ubuntu, já tem o gedit instalado. Quem instala o Kubuntu, já tem o kate. Quem tem windows, uso o Notepad ou afins. Quem tem Mac, pode instalar o kate também, procure na internet.

- Costumo compilar meus programas na "linha de comando" usando o compilador gcc. Provavelmente este deve ser instalado. A instalação para Windows é horrível. Boa sorte. Para Linux, é bem mais fácil: vá no instalador de programas, procure por gcc, mande instalar. Só.

- Uma alternativa para windows é instalar um programa chamado dev-c++, que tem embutido um compilador (o próprio gcc) mais um editor simples. Podem usar também. Mas as provas serão feitas com o gcc, então tomem cuidado.

- É só isso que precisa. Vejam o vídeo exemplo. Vou começar do zero: criar uma pasta para guardar os programas, abrir o kate, digitar o programa, salvar. Ir para o terminal, entrar na pasta, compilar e rodar.





Veja o vídeo em resolução máxima e tela cheia. Não é muito grande, de qualquer modo.

Vídeos em formato maior:
ajuda_C_1.avi
ajuda_C_1.ogv

terça-feira, fevereiro 15, 2011

Material de Programação em C

Este material introdutório é destinado a turma de sistema distribuídos e estruturas de dados.

O pessoal de sistemas distribuidos precisa entregar os problemas resolvidos por email até o dia 24 de Fevereiro, 23:59 da noite. Para sistemas distribuidos, só é necessário entregar a Lista 3. Quem quiser fazer as outras, principalmente a Lista 2, pode fazer.

O pessoal de Estruturas de Dados precisa entregar a Lista 1 no dia  28 de Fevereiro, até às 23:59, por email (henriquemarks@gmail.com).

Lista 1
Lista 2
Lista 3

Um bom material de C é este:

Apostila de C

Bom proveito a todos