CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C] Algorithme BSQ

Pseudo supprimé
Pseudo supprimé 06 décembre 2012 à 11:46:02

Bonjour à tous. :)

J'ai un code à réaliser, un programme de BSQ. Pour ceux qui ne savent pas ce que c'est, vous avez un plateau comme ceci :

9
...........................
....o......................
............o..............
...........................
....o......................
...............o...........
...........................
......o..............o.....
..o.......o................

9 est le nombre de lignes du plateau.
Et le but est de retrouver le plus grand carré composé uniquement de "." dans le plateau (uniquement les carrés).

.....xxxxxxx...............
....oxxxxxxx...............
.....xxxxxxxo..............
.....xxxxxxx...............
....oxxxxxxx...............
.....xxxxxxx...o...........
.....xxxxxxx...............
......o..............o.....
..o.......o................

Pour l'instant, j'essaye déjà de stocker chaque caractère du plateau dans un tableau à double entrée :

  1. include <stdlib.h>
  2. include <stdio.h>
  3. include <string.h>
  4. include <fcntl.h>

int main(char argc, char **argv)
{
int fd;
int fd2;
char **tab;
char buffer[1];
int i;
int a;
int b;
int c;
int nb_line;
int save_nb_line;
int nb_column;
int save_nb_column;

fd = open(argv[1], O_RDONLY);
nb_line = my_getnbr(get_next_line(fd));
save_nb_line = nb_line;
nb_column = my_strlen(get_next_line(fd));
tab = malloc((sizeof(*tab) * nb_line) +1);
i = 0;
while (nb_line != 0)
{
tab[i] = malloc((sizeof(**tab) * (nb_column)) + 1);
i = i + 1;
nb_line = nb_line - 1;
}
close(fd);
fd2 = open(argv[1], O_RDONLY);
read(fd, buffer, 1);
a = 0;
while (buffer[a] != '\n')
read(fd, buffer, 1);
b = 0;
c = 0;
while (save_nb_line != 0)
{
save_nb_column = nb_column;
while (save_nb_column != 0)
{
read(fd, buffer, 1);
tab[c][b] = buffer[a];
b = b + 1;
save_nb_column = save_nb_column - 1;
}
read(fd, buffer, 1);
c = c + 1;
save_nb_line = save_nb_line - 1;
}
my_putchar(tab[1][0]);
}

J'ai alors deux petits problèmes qui se posent à moi.

:d) D'abord, mon programme bugge, genre seule la première ligne de mon tablea se remplit, les autres sont vides mêmes après mon incrémentation...

:d) L'autre est que je n'ai strictement aucune idée de comment faire ppour trouver le carré le plus grand sur le plateau. Je ne vois pas du tout quel algorithme utiliser, quel calcul, quelqu'un pourrait-il m'éclairer ?

Merci d'avance :)

Pseudo supprimé
Pseudo supprimé 06 décembre 2012 à 11:53:16

Le premier point est réglé, un simple oubli d'un b=0 :pf:

Mais pour la suite :hap:

caelacanthe
caelacanthe
Niveau 10
06 décembre 2012 à 12:05:25

host le code sur pastebin, pour voir? sans l'indentation, c'est illisible, là. :oui:

Pseudo supprimé
Pseudo supprimé 06 décembre 2012 à 12:10:07

Voilà

http://pastebin.com/yUiCNrnP

Caymal_keke
Caymal_keke
Niveau 32
06 décembre 2012 à 13:00:26

bien ton -42 ?
parce que la c'est de la triche :)

Pseudo supprimé
Pseudo supprimé 06 décembre 2012 à 13:02:20

Je ne demande pas de code, mais juste une indication :)

Parce que je peux le faire en bruteforce, mais niveau optimisation, c'est pas ça du tout :-(

Caymal_keke
Caymal_keke
Niveau 32
06 décembre 2012 à 13:30:36

c'est pareil
t'es censé trouver toi même ton algo
si t'es pas capable de faire ce projet tout seul, arrete tout de suite epitech hein
tu veux pas qu'on te fasses ton code aussi ?

Pseudo supprimé
Pseudo supprimé 06 décembre 2012 à 13:34:04

Ok :)

Des idées ?

tbop2
tbop2
Niveau 10
06 décembre 2012 à 14:26:58

Je dois avouer qu'en fait ton code est assez imbitable en fait. Connais tu les fonctions ainsi que les commentaires ? Je te conseille de refactorer tout ca avant toute chose. Quelques structures custom aussi pourraient aider a la comprehension et a pose le probleme correctement.

Karas_le_retour
Karas_le_retour
Niveau 1
06 décembre 2012 à 14:27:24

Howw my fucking god Oo

Les tek1 sont désespéré au point de poster sur les forums de JV.com.

Mais où est la norme ? Où sont les free ? Ton get_next_line renvoi un Int ? Pourquoi t'a deux file descriptor ? Pourquoi tu déclares un tableau de 1 Char ? Pourquoi mes yeux saignent ? Pourquoi tu code pas à la norme ?

Ha Mon Dieu XD. Que dire d'autre sinon que tu mérites la mort.

By the way, tout ça me rappelle de bons vieux souvenir. Comme quoi :

Un sandwiche à Avener : 4€50
Une année à Epitech : 8500€
Le code d'un Tek1 : ça n'a pas de prix.

Ho putain je vous laisse je vais mourir de rire plus loin :rire:

caelacanthe
caelacanthe
Niveau 10
06 décembre 2012 à 14:31:15

ah okay l'ambiance odieuse de cette école. :hap:

il fait bien de demander, en effet, qui s'embêterait à réinventer la roue dans le monde de l'informatique? :oui:

tbop2
tbop2
Niveau 10
06 décembre 2012 à 14:32:13

Waah l'ambiance de merdeux qui regne dans c't'ecole.

caelacanthe
caelacanthe
Niveau 10
06 décembre 2012 à 14:39:25

C'est plutôt bien qu'il poste ici, ce que vous appelez "triche" (+ ololz réponse à la grande question :hap: ), nous appelons ça "review de code" et il s'en tirera probablement avec quelques notions que ses profs ont omis de lui prodiguer, comme l'intérêt des commentaires. Ou valait-il peut-être mieux qu'il galère tout seul? :pf:

Caymal_keke
Caymal_keke
Niveau 32
06 décembre 2012 à 14:42:33

les profs ?
a epitech il n'y en a pas

tu te débrouilles tout seul

en tout cas la norme, il connait pas :hap:

si on inclus ton -42 et les fautes de normes, tu as a peut pret ... -95 ou -100 comme note

caelacanthe
caelacanthe
Niveau 10
06 décembre 2012 à 14:45:43

"a epitech il n'y en a pas

tu te débrouilles tout seul "

:d) ah okay, et il va réinventer les notions et les bonnes pratiques? se débrouiller tout seul n'implique pas les recherches sur le net, ainsi que les questions posées aux gens qui ont les connaissances à défaut d'avoir les mêmes chez vous? vous n'avez donc pas non plus quelqu'un pour vous apprendre à dire des choses intelligentes? :oui:

Karas_le_retour
Karas_le_retour
Niveau 1
06 décembre 2012 à 14:46:21

Tu pourra pas savoir ce que c'est tant que tu l'aura pas vécu mon petit :P

Et j'aouterai qu'à travers tout ce que j'ai dit il y déjà pas mal de piste à creuser pour assainir son code.

Triple14
Triple14
Niveau 10
06 décembre 2012 à 14:55:37

Ce forum et sa méchanceté gratuite et hautaine me fera toujours rire :rire:

Pourquoi quand on va dans un forum de maths, un forum de physique, ou que sais-je, les gens ne sont pas comme ici ?

Qu'on rembarre parce qu'une question a déjà trop été posée, je veux bien. Qu'on rembarre parce que l'auteur demande qu'on lui fasse tout son travail, je veux bien. Mais qu'on se mette à quasiment l'insulter implicitement parce qu'il n'est pas aussi fort que ce que l'on voudrait, je trouve ça minable :ok:

C'est un manque de classe total et une marque indubitable de bêtise. Je réagis aujourd'hui, parce que des réactions comme celles d'ici, j'en ai vu des dizaines sur ce forum.

Et avant que celui qui ne sait pas lire me demande pourquoi je viens encore ici, je fais lui fais remarquer que je ne montre pas tout le monde du doigt - heureusement il y a quelques personnes intelligentes ET généreuses - mais uniquement certains.

caelacanthe
caelacanthe
Niveau 10
06 décembre 2012 à 15:03:51

"Ce forum et sa méchanceté gratuite et hautaine me fera toujours rire :rire: "

:d) "ce forum", c'est un vaste mot, pourquoi ne pas lire attentivement le topic pour comprendre la situation? :pf:

lokilok
lokilok
Niveau 16
06 décembre 2012 à 15:43:03

Maintenant les gens savent quelle école ils doivent éviter :oui:

_Jek0_
_Jek0_
Niveau 1
06 décembre 2012 à 17:03:36

C'est pas une question d'école, le fait est qu'il est rissible de poster sur JVC pour des question de code alors qu'il y a des site comme http://stackoverflow.com/ qui sont mis en place pour ça.

Accessoirement, si vous n'avez pas fait Epitech vous ne pouvez pas comprendre que ce projet BSQ est a la portée de n'importe quel étudiant de première année qui a travaillé correctement pendant les premier mois d'epitech.
Etant donné que la promo de première année est constituée de plus de 400 Etudiants il parait plus simple de demander a un autre Etudiant qu'aller se réfugier sur un forum pour cela.
Le principe de cette école réside dans l'apprentissage par sois-même (être autodidacte pour les amateurs de mots savant), aller chercher la solution par sois même =/= demander la solution.

Bref, Oui y'a des aigris dans cette école comme partout, néanmoins je te conseille de demander à tes camarades de promo ou aux asteks, plutot que d'aller sur un forum.

Ps: J'sais que t'es en tek1 mais quand même, code a la norme, fait des fonctions précises avec nom explicite pour que les gens qui passent derrière toi aient pas envie de te fister avec un cactus pasque ton code est vraiment pas propre.
Accessoirement ça aidera a ce qu'on te réponde sur un forum.

Ps2: pour les blaireaux qui se basent sur 2 réponses d'étudiant pour descendre epitech alors que bon y'a 1600 Etudiants sur le campus, seriously arrêtez TF1 et apprenez a discerner des trolls sur un forum.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment