Ir ao conteúdo
  • Cadastre-se

C Funções em C com esquema pré-definido


Posts recomendados

Acho que você entendeu bem o lance. 

Acho que é isso mesmo. Mas esse é um problema chato e o enunciado não está muito bom,

 

Você não pode escrever direto ao professor ou TA (monitor, assistente?) ? Não tem algo como um monitor, um cara que ajuda os alunos?

 

Eu entendo que no caso da eleição a chance de B ser eleito ao invés de A é a margem de B mais os votos que eram para A mas deram erro menos os votos de B que deram erro e foram pro outro lado. Ao simular a eleição você tenta se aproximar dessa conta. Fazendo essa conta igual ao total de votos mais 1 você tem uma equação cujo resultado é o valor que Bissecta() deve aproximar.

 

 

 

Link para o comentário
Compartilhar em outros sites

@arfneto Eles não conseguiram monitor para esse semestre. Já ouviu falar no IME-USP? Pois então, pedir ajuda ao professor é garantia de tomar um coice daqueles. E falo por experiência própria. 

 

Vou tentar uma última vez, sintetizar suas informações e ver se consigo criar algo. Obrigada mais uma vez!

Link para o comentário
Compartilhar em outros sites

8 minutos atrás, Yasmin Martins disse:

Eles não conseguiram monitor para esse semestre. Já ouviu falar no IME-USP? Pois então, pedir ajuda ao professor é garantia de tomar um coice daqueles. E falo por experiência própria

 

Tomar um coice pode ser irrelevante desde que ele te dê uma resposta ... Eu estudei no IME em São Carlos, da USP. A filial. :D 

adicionado 0 minutos depois

Tente escrever uma simulação. É só um loop afinal, e uma tabela pra gravar os valores

Link para o comentário
Compartilhar em outros sites

@arfneto Olha, que bacana! Sempre ouvi que São Carlos é ótimo em tudo. Parabéns pela força!

 Na verdade eu não ligaria para o coice se recebesse uma orientação, como você mencionou, mas na prática isso não ocorre. 

 

Eu tenho uma simulação do método da bissecção no papel, e estou tentando desde ontem uma simulação das funções, e mesmo em português não consegui relacionar as coisas. Pode parecer impossível mas estou nesse grau de dificuldade de entender. De qualquer forma, obrigada por tudo @arfneto. 

Link para o comentário
Compartilhar em outros sites

Sim. Mas não depende de nada :(

 

Veja esse resultado 

Para 10000 testes e f=0.10 a funcao retornou 934 falhas


Agora umas eleicoes pra ver a mecanica



100 simulacoes
    N = 10000 votantes
    Margem A = 0.51
    Taxa de erro f = 0.01



[   1 de  100]:   91 erros. Media de erros apos    1 eleicoes: 91.000
[   2 de  100]:   85 erros. Media de erros apos    2 eleicoes: 88.000
[   3 de  100]:   99 erros. Media de erros apos    3 eleicoes: 91.667
[   4 de  100]:   98 erros. Media de erros apos    4 eleicoes: 93.250
[   5 de  100]:   96 erros. Media de erros apos    5 eleicoes: 93.800
[   6 de  100]:   83 erros. Media de erros apos    6 eleicoes: 92.000
[   7 de  100]:  105 erros. Media de erros apos    7 eleicoes: 93.857
[   8 de  100]:   98 erros. Media de erros apos    8 eleicoes: 94.375
[   9 de  100]:   98 erros. Media de erros apos    9 eleicoes: 94.778
[  10 de  100]:   90 erros. Media de erros apos   10 eleicoes: 94.300
[  11 de  100]:  107 erros. Media de erros apos   11 eleicoes: 95.455
[  12 de  100]:   96 erros. Media de erros apos   12 eleicoes: 95.500
[  13 de  100]:   83 erros. Media de erros apos   13 eleicoes: 94.538
[  14 de  100]:  106 erros. Media de erros apos   14 eleicoes: 95.357
[  15 de  100]:   96 erros. Media de erros apos   15 eleicoes: 95.400
[  16 de  100]:   98 erros. Media de erros apos   16 eleicoes: 95.563
[  17 de  100]:  103 erros. Media de erros apos   17 eleicoes: 96.000
[  18 de  100]:  100 erros. Media de erros apos   18 eleicoes: 96.222
[  19 de  100]:  117 erros. Media de erros apos   19 eleicoes: 97.316
[  20 de  100]:  102 erros. Media de erros apos   20 eleicoes: 97.550
[  21 de  100]:  102 erros. Media de erros apos   21 eleicoes: 97.762
[  22 de  100]:  119 erros. Media de erros apos   22 eleicoes: 98.727
[  23 de  100]:  114 erros. Media de erros apos   23 eleicoes: 99.391
[  24 de  100]:  109 erros. Media de erros apos   24 eleicoes: 99.792
[  25 de  100]:  111 erros. Media de erros apos   25 eleicoes: 100.240
[  26 de  100]:   94 erros. Media de erros apos   26 eleicoes: 100.000
[  27 de  100]:  103 erros. Media de erros apos   27 eleicoes: 100.111
[  28 de  100]:  101 erros. Media de erros apos   28 eleicoes: 100.143
[  29 de  100]:   88 erros. Media de erros apos   29 eleicoes: 99.724
[  30 de  100]:   99 erros. Media de erros apos   30 eleicoes: 99.700
[  31 de  100]:  103 erros. Media de erros apos   31 eleicoes: 99.806
[  32 de  100]:  100 erros. Media de erros apos   32 eleicoes: 99.813
[  33 de  100]:  103 erros. Media de erros apos   33 eleicoes: 99.909
[  34 de  100]:  110 erros. Media de erros apos   34 eleicoes: 100.206
[  35 de  100]:   92 erros. Media de erros apos   35 eleicoes: 99.971
[  36 de  100]:  106 erros. Media de erros apos   36 eleicoes: 100.139
[  37 de  100]:   92 erros. Media de erros apos   37 eleicoes: 99.919
[  38 de  100]:  101 erros. Media de erros apos   38 eleicoes: 99.947
[  39 de  100]:  103 erros. Media de erros apos   39 eleicoes: 100.026
[  40 de  100]:   97 erros. Media de erros apos   40 eleicoes: 99.950
[  41 de  100]:  100 erros. Media de erros apos   41 eleicoes: 99.951
[  42 de  100]:   88 erros. Media de erros apos   42 eleicoes: 99.667
[  43 de  100]:   87 erros. Media de erros apos   43 eleicoes: 99.372
[  44 de  100]:   91 erros. Media de erros apos   44 eleicoes: 99.182
[  45 de  100]:   99 erros. Media de erros apos   45 eleicoes: 99.178
[  46 de  100]:  101 erros. Media de erros apos   46 eleicoes: 99.217
[  47 de  100]:   96 erros. Media de erros apos   47 eleicoes: 99.149
[  48 de  100]:   99 erros. Media de erros apos   48 eleicoes: 99.146
[  49 de  100]:  111 erros. Media de erros apos   49 eleicoes: 99.388
[  50 de  100]:  105 erros. Media de erros apos   50 eleicoes: 99.500
[  51 de  100]:  105 erros. Media de erros apos   51 eleicoes: 99.608
[  52 de  100]:   96 erros. Media de erros apos   52 eleicoes: 99.538
[  53 de  100]:  101 erros. Media de erros apos   53 eleicoes: 99.566
[  54 de  100]:   98 erros. Media de erros apos   54 eleicoes: 99.537
[  55 de  100]:  102 erros. Media de erros apos   55 eleicoes: 99.582
[  56 de  100]:  106 erros. Media de erros apos   56 eleicoes: 99.696
[  57 de  100]:  112 erros. Media de erros apos   57 eleicoes: 99.912
[  58 de  100]:  119 erros. Media de erros apos   58 eleicoes: 100.241
[  59 de  100]:  102 erros. Media de erros apos   59 eleicoes: 100.271
[  60 de  100]:  103 erros. Media de erros apos   60 eleicoes: 100.317
[  61 de  100]:  105 erros. Media de erros apos   61 eleicoes: 100.393
[  62 de  100]:  101 erros. Media de erros apos   62 eleicoes: 100.403
[  63 de  100]:  106 erros. Media de erros apos   63 eleicoes: 100.492
[  64 de  100]:   86 erros. Media de erros apos   64 eleicoes: 100.266
[  65 de  100]:  107 erros. Media de erros apos   65 eleicoes: 100.369
[  66 de  100]:  103 erros. Media de erros apos   66 eleicoes: 100.409
[  67 de  100]:  103 erros. Media de erros apos   67 eleicoes: 100.448
[  68 de  100]:  102 erros. Media de erros apos   68 eleicoes: 100.471
[  69 de  100]:  112 erros. Media de erros apos   69 eleicoes: 100.638
[  70 de  100]:   87 erros. Media de erros apos   70 eleicoes: 100.443
[  71 de  100]:  101 erros. Media de erros apos   71 eleicoes: 100.451
[  72 de  100]:   97 erros. Media de erros apos   72 eleicoes: 100.403
[  73 de  100]:  114 erros. Media de erros apos   73 eleicoes: 100.589
[  74 de  100]:  104 erros. Media de erros apos   74 eleicoes: 100.635
[  75 de  100]:  100 erros. Media de erros apos   75 eleicoes: 100.627
[  76 de  100]:   97 erros. Media de erros apos   76 eleicoes: 100.579
[  77 de  100]:  106 erros. Media de erros apos   77 eleicoes: 100.649
[  78 de  100]:  107 erros. Media de erros apos   78 eleicoes: 100.731
[  79 de  100]:   91 erros. Media de erros apos   79 eleicoes: 100.608
[  80 de  100]:   97 erros. Media de erros apos   80 eleicoes: 100.563
[  81 de  100]:   97 erros. Media de erros apos   81 eleicoes: 100.519
[  82 de  100]:   90 erros. Media de erros apos   82 eleicoes: 100.390
[  83 de  100]:   96 erros. Media de erros apos   83 eleicoes: 100.337
[  84 de  100]:  103 erros. Media de erros apos   84 eleicoes: 100.369
[  85 de  100]:  111 erros. Media de erros apos   85 eleicoes: 100.494
[  86 de  100]:   93 erros. Media de erros apos   86 eleicoes: 100.407
[  87 de  100]:  103 erros. Media de erros apos   87 eleicoes: 100.437
[  88 de  100]:   95 erros. Media de erros apos   88 eleicoes: 100.375
[  89 de  100]:  106 erros. Media de erros apos   89 eleicoes: 100.438
[  90 de  100]:   99 erros. Media de erros apos   90 eleicoes: 100.422
[  91 de  100]:   95 erros. Media de erros apos   91 eleicoes: 100.363
[  92 de  100]:   97 erros. Media de erros apos   92 eleicoes: 100.326
[  93 de  100]:   69 erros. Media de erros apos   93 eleicoes: 99.989
[  94 de  100]:   89 erros. Media de erros apos   94 eleicoes: 99.872
[  95 de  100]:  116 erros. Media de erros apos   95 eleicoes: 100.042
[  96 de  100]:  105 erros. Media de erros apos   96 eleicoes: 100.094
[  97 de  100]:  105 erros. Media de erros apos   97 eleicoes: 100.144
[  98 de  100]:  115 erros. Media de erros apos   98 eleicoes: 100.296
[  99 de  100]:  108 erros. Media de erros apos   99 eleicoes: 100.374
[ 100 de  100]:  105 erros. Media de erros apos  100 eleicoes: 100.420
Final

 

Para esse programa

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define BISSEC_TOL (1e-6)

void    ativa_sorteador();
double  prob_erro(int, double, double, int);
double  sorteia_real();
int     sorteia_voto_com_falha(double);
int     sorteia_voto_com_falha2(double);


int main(int argc, char** argv)
{
	double f = 0.1;
	int    falhas = 0;
	int    r = 0;
	int    testes = 10000;

	ativa_sorteador();
	for (int i = 0; i < testes; i += 1)
	{
		r = sorteia_voto_com_falha(f);
		if (r != 0) falhas = falhas + 1;
	};
	printf("Para %d testes e f=%4.2f a funcao retornou %d falhas\n",
		testes, f, falhas);

	printf("\n\nAgora umas eleicoes pra ver a mecanica\n\n\n");

	int votantes = 10000;
	double	margemA = 0.51;
	double	falha = 0.01;
	testes = 100;
	double erro = prob_erro(votantes, margemA, falha, testes);
	//printf("prob_erro() retornou %f\n", erro);
	return 0;
};


void ativa_sorteador()
{
#ifdef RANDOM_SEED
	srand(RANDOM_SEED);
#else
	//srand(time(NULL));
	srand(20200805);
#endif
};


double  prob_erro(int N, double a, double f, int T)
{
	/*
	estima a probabilidade de erro de uma eleição com N votantes,
	dos quais uma fração a vota no candidato A, e com probabilidade de
	falha f, utilizando T simulações.Os limites dos parâmetros são
	como no exemplo de entrada e saída
	*/
	int erros = 0;  // erros
	int sim = 0;    // simulacoes
	int v = 0;      // votos

	printf("\n%d simulacoes\n", T);
	printf("    N = %d votantes\n", N);
	printf("    Margem A = %.2f\n", a);
	printf("    Taxa de erro f = %.2f\n\n\n\n", f);

	double grande_total = 0;
	for (int sim = 1; sim <= T; sim += 1)
	{	// executa T simulacoes
		erros = 0;
		for (int v = 0; v < N; v += 1)
		{	// N votos
			if (sorteia_voto_com_falha(f)) erros += 1;
		};
		printf("[%4d de %4d]: %4d erros. ",
			sim, T, erros);
		grande_total += erros;
		printf("Media de erros apos %4d eleicoes: %.3f\n",
			sim, grande_total / sim);
	};	// for()

	printf("Final\n");
	return 1.234;
};

/* devolve um real sorteado uniformemente no intervalo [0,1] */
double sorteia_real()
{
	return (double)rand() / RAND_MAX;
};


int sorteia_voto_com_falha(double f)
{
	return (sorteia_real() < f);
};


int sorteia_voto_com_falha2(double f)
{
	int i = rand() % 100;
	int j = (int)(f * 100);
	return (i < j);
};

 

Veja se entende esse e vai estar bem mais perto do resultado... Rode em sua maquina.

adicionado 12 minutos depois

 

Não sei se estamos nos entendendo. Entendeu que eu acho que o enunciado está errado?

 

Citação

Você não pode escrever direto ao professor ou TA (monitor, assistente?) ? Não tem algo como um monitor, um cara que ajuda os alunos?

 

Eu entendo que no caso da eleição a chance de B ser eleito ao invés de A é a margem de B mais os votos que eram para A mas deram erro menos os votos de B que deram erro e foram pro outro lado. Ao simular a eleição você tenta se aproximar dessa conta. Fazendo essa conta igual ao total de votos mais 1 você tem uma equação cujo resultado é o valor que Bissecta() deve aproximar.

 

O texto não considera o outro lado da história: a mesma taxa de erro se aplica aos eleitores de B e é preciso computar isso lá.

 

Citação

A porcentagem de votantes
no candidato A é a = 51%, porém cada voto pode ser registrado com uma falha da urna, ou seja,
o voto pode ser alterado para o outro candidato com probabilidade de falha f = 5%. As falhas da
urna ocorrem de forma independente para cada votante.

 

Até está escrito lá.

 

Entendeu isso?

Link para o comentário
Compartilhar em outros sites

Citação

Observe que sabemos que com probabilidade f = fa = 0 (não há falhas), certamente A ganhará a
eleição. Da mesma forma, se a probabilidade for f = fb = 1, ocorrerá erro, e B vencerá de forma
incorreta

 

:D Estou vendo isso durante o café :D 
 

Isso está errado. f = 1 significa que a urna vai inverter TODOS os votos e isso não quer dizer que "B vencerá de forma incorreta" mas sim que as margens serão invertidas e a eleição vai sempre inverter o vencedor. "O resultado será sempre incorreto" seria o certo de se afirmar.

 

Citação

Este processo é repetido até que a diferença de fa e fb
seja menor que o valor BISEC_TOL.

 

E o cara errou o nome da constante...

Citação

#define BISSEC_TOL (1e-6)

 

Link para o comentário
Compartilhar em outros sites

32 minutos atrás, arfneto disse:

 

:D Estou vendo isso durante o café :D 
 

Isso está errado. f = 1 significa que a urna vai inverter TODOS os votos e isso não quer dizer que "B vencerá de forma incorreta" mas sim que as margens serão invertidas e a eleição vai sempre inverter o vencedor. "O resultado será sempre incorreto" seria o certo de se afirmar.

 

 

E o cara errou o nome da constante...

 

 

@arfneto Bom dia! Desculpe-me, ontem acabei caindo de sono. 😞

Muitíssimo obrigada por ter enviado esse código acima. 

Então, eu concordo contigo, sempre vai ser invertido o resultado final. Nesse caso, o que ele deseja que se faça, é que se calcule qual a probabilidade de erro máximo que pode existir que ainda garante que A vença no final. Ele não deseja que B vença. Note que se você olhar o exemplo de entrada e saída, ele induz você a colocar sempre um valor acima de 50% de votos pro candidato A, e você insere o numero de votantes e a maior probabilidade que você deseja que ocorra, para aí ele devolver o numero real de falha.

Eu entendi nesse trecho que fala de probabilidade de fa=0 (A vence) e fb=1(A perde) como sendo 0% de falhas(A se garante) à 100% de falhas (A perdeu). Então o método da bissecção vai calculando a media entre fa e fb (fa=0, fb=1) ->> (0+1)/2 == 0.5, aí esses 0.5 (ponto medio entre fa e fb) serão jogados na prob_erro pra calcular o tal f. Esse valor vai voltar pra bissecta() e aí você compara o q saiu da prob_erro() com o valor da tolerância tol que o usuário inseriu. Entendeu isso?

A bissecta() é que faz o absurdo acontecer, aparentemente. porque ela q dá o f. Vou mandar o trecho de código que eu fiz que capta mais ou menos essa ideia. 

 

Gostaria de lhe perguntar: por exemplo, uma função tem 4 parâmetros, posso eu chama-la em outro lugar utilizando apenas 1 parâmetro? Ex: bissecta() tem 4 parâmetros, posso chama-la em algum lugar utilizando apenas 1 parâmetro? Provavelmente nao ne? Pois o compilador nao saberia qual parâmetro eu estaria substituindo. Pergunto isso pois quando eu fiz esse código abaixo, eu usei apenas o parâmetro tol, e eu nao usei o restante. E pra chamar a prob_erro() eu deveria usar todos, mas eu nao visualizei como inseri-los nesse bloco pra usa-los (N votantes, a porcentagem, T simulações)

 

double bissecta (int N, double a, int T, double tol);
	
	int i;
	double fa = 0, fb = 1, media = 0, pontom;
	
	for(i = 0; i >= ((fa - fb) > BISEC_TOL); i = i+1){
		media = (fa + fb)/2;	// faz a media dos valores
		pontom = media;	// pontom recebe a media pra jogar na funcao prob_erro()
		
		pontom = prob_erro() // como colocar os parametros? 
		
		if(pontom <= (tol)){	// compara o  que saiu de prob_erro() com a tolerância tol
			fa = pontom;	// se estiver abaixo do valor gerado em prob_erro() atualiza fa;
				else{
					fb = pontom;
				}

  

Link para o comentário
Compartilhar em outros sites

12 minutos atrás, Yasmin Martins disse:

Então, eu concordo contigo, sempre vai ser invertido o resultado final

 

no caso de f = 1

 

12 minutos atrás, Yasmin Martins disse:

Nesse caso, o que ele deseja que se faça, é que se calcule qual a probabilidade de erro máximo que pode existir que ainda garante que A vença no final

 

dentro de uma certa tolerância tol

 

13 minutos atrás, Yasmin Martins disse:

Note que se você olhar o exemplo de entrada e saída, ele induz você a colocar sempre um valor acima de 50% de votos pro candidato A, e você insere o numero de votantes e a maior probabilidade que você deseja que ocorra, para aí ele devolver o numero real de falha

 

número estimado de falhas, não número real. E não é uma indução, é o objetivo: calcular a possibilidade de uma eleição ter o resultado invertido por excesso de erros da urna. Você poderia calcular com o perdedor. Tanto faz. O que importa é se o resultado foi invertido em relação às margens ou não.

 

16 minutos atrás, Yasmin Martins disse:

uma função tem 4 parâmetros, posso eu chama-la em outro lugar utilizando apenas 1 parâmetro

 

Em C não. Isso se chama polimorfismo e existe em outras linguagens como java e C++

 

18 minutos atrás, Yasmin Martins disse:

eu nao visualizei como inseri-los nesse bloco pra usa-los (N votantes, a porcentagem, T simulações)


Sua dificuldade eu não entendi. Pode tentar explicar de outro modo?

 

17 minutos atrás, Yasmin Martins disse:

Então o método da bissecção vai calculando a media entre fa e fb (fa=0, fb=1) ->> (0+1)/2 == 0.5, aí esses 0.5 (ponto medio entre fa e fb) serão jogados na prob_erro pra calcular o tal f. Esse valor vai voltar pra bissecta() e aí você compara o q saiu da prob_erro() com o valor da tolerância tol que o usuário inseriu. Entendeu isso?

 

Isso é a simples busca binária por um valor no intervalo.

 

Você rodou o programa que te mostrei? Entendeu o código? Não tem nenhuma dúvida?

 

Link para o comentário
Compartilhar em outros sites

@arfneto Por que em double  prob_erro(int N, double a, double f, int T) você colocou return 1.234? Não entendo o que isso faz.

E também não entendi o que sorteia_voto_com_falha2() faz.

 

eu nao visualizei como inseri-los nesse bloco pra usa-los (N votantes, a porcentagem, T simulações)

 

A função bissecta() tem 4 parâmetros (N, a, T, tol). Logo, devo fazer algo dentro dela que utilize esses 4 parâmetros, mas só visualizei como utilizar tol. Como eu não posso passar apenas tol como parâmetro pra prob_erro() (seria polimorfismo) como você explicou, significa que minha função bissecta() está longe de estar completa.

Link para o comentário
Compartilhar em outros sites

16 minutos atrás, Yasmin Martins disse:

Por que em double  prob_erro(int N, double a, double f, int T) você colocou return 1.234? Não entendo o que isso faz.

 

porque esse é só um trecho de código para mostrar o loop de simulações e o de votos. A mecânica da coisa, como está escrito lá. Não é algo sério. Trata-se de uma constante para ver se você de fato ao menos leu  programa. E você leu!

 

Você rodou o programa?

 

18 minutos atrás, Yasmin Martins disse:

E também não entendi o que sorteia_voto_com_falha2() faz

 

Aí temos um problema mesmo.

 

Essa é precisamente a raiz da solução

 

image.png.09191828a60ed450f164489898a82b0b.png

 

Se
 

image.png.2dc9e0308bf269023e5535a606a741a2.png

 

Então


o tal f da função de sorteio, que é um número entre 0 e 1 também, será menor que esse que veio de sorteia_real() com a probabilidade f. Ou não?

 

E você pode escrever 

int sorteia_voto_com_falha(double f)
{
	return (sorteia_real() < f);
};

porque como eu te expliquei em C ZERO é falso. Te mostrei exemplos também. Então essa função vai retornar zero se sorteia_real() for maior que f.

 

Assim ficaria mais fácil de entender?


int sorteia_voto_com_falha2(double f)
{
	int i = rand() % 100;
	int j = (int)(f * 100);
	if (i < j)
		return 1;
	else 
		return 0;
};

 

 

adicionado 24 minutos depois

faça pequenos programas para você se acostumar com essas coisas

 

		for (int v = 0; v < N; v += 1)
		{	// cada voto
			if (sorteia_real() < a)
			{	// voto em A
				if (!sorteia_voto_com_falha(f))
					votos_em_A += 1;
			}
			else
			{	// voto em B
				if (sorteia_voto_com_falha(f))
					votos_em_A += 1;
			};	// if()
		};	// for() fim da eleicao

Esse loop seria uma eleição computando os votos de acordo com os parâmetros. Pense nisso. Ao final se você tem votos_em_A maior que a metade dos votos, N/2, quer dizer que deu erro

Link para o comentário
Compartilhar em outros sites

faça pequenos programas para você se acostumar com essas coisas

 

Pensando de novo no seu programa, entendi que a eleição não é uma simulação de verdade. O valor da margem de A não é uma probabilidade como numa eleição. É um número fixo e isso simplifica umas coisas.

 

Por outro lado devo te lembrar que os valores são baseados em números aleatórios então não vai ter um valor igual aos do enunciado.

 

Ao achar o ponto limite usando a tal bissecta() por outro lado pode conferir usando a mesma função prob_erro() e ver se o valor retornado por bissecta() é mesmo um ponto limite em relação à tolerância...

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

@arfneto Será que é possível você me enviar uma mensagem privada e a gente conversar sobre a resolução final do problema? Depois do tanto que você me ajudou, eu gostaria de compartilhar contigo. Nao posso deixar o código inteiro exposto aqui pois alguém pode copiar e eu ser punida por plagio. Obrigada @arfneto!!!

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!