Diskuze: Projekt
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 24 zpráv z 24.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Nejsem si jistý, zda tady moc lidí bude (pozitivně) reagovat na příspěvek, který si mohou vyložit i tak, že bys chtěl, aby za tebe někdo jiný ten úkol v podstatě udělal.
Každopádně, zadání známe (alespoň jeho obrysy). Zkus specifikovat, co ti přesně dělá problémy.
Zatím mám toto ale nevím jak to udělat aby se mi ty čísla v konzoly střídala.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i, n;
time_t t;
n = 1;
srand;
for( i = 0 ; i < n ; i++ ) {
printf("--- \n");
printf("[%d] \n", rand() % 6);
printf("--- \n");
printf("\n");
printf("--- \n");
printf("[%d] \n", rand() % 6);
printf("--- \n");
printf("\n");
printf("--- \n");
printf("[%d] \n", rand() % 6);
printf("--- \n");
}
system ("PAUSE");
return(0);
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/* funkcia - pauza na 1 milisekundu */
void sleep(unsigned int msecund)
{
clock_t ciel; // deklarácia premennej typu clock_t
ciel = msecund + clock(); // vložiť do premennej čas o trvaní 1 milisekundy (sekunda má 1000 milisekúnd)
while (ciel > clock()); // beží kým sa nevy-clock-uje po 0 (nulu)
}
int main(void)
{
int i, n;
n = 10;
srand(time(0));
for( i = 0 ; i < n ; i++ ) {
printf("--- \n");
printf("[%d] \n", rand() % 6);
printf("--- \n");
printf("\n");
printf("--- \n");
printf("[%d] \n", rand() % 6);
printf("--- \n");
printf("\n");
printf("--- \n");
printf("[%d] \n", rand() % 6);
printf("--- \n");
sleep(1500);
system("cls");
}
system ("PAUSE");
return(0);
}
gamer111111 Libor Šimo (libcosenior)
Když už děláte něco v C, tak to zkuste dělat multiplatformně
Tj. nepoužívat system("PAUSE") a podobně.. Doporučuju překládat se
specifikovaným standardem a pedantic kontrolou.
Ohledně toho se mi líbil jeden příspěvek na fóru, kde se to řešilo..
"Don't use system("anything"). It is slow. It is disliked by antivirus
software. It is OS-dependent. It tags you as an absolute beginner. And it is a
massively huge, gaping, ugly security hole.
If all you are doing is some silly homework assignment or playing with your own
code, it is fine. But for everything else: please, please don't."
Ale abych byl kontruktivní, tak se to dá jednoduše nahradit například vypsáním textu a prázdným getcharem nebo něco podobného.. Otázka ale je, proč to vlastně používat.. Nevím přesně, jak je to ve windows, když spustíš normálně terminálovou aplikaci.. Zavře se hned po returnu z main? Vím, že to dělají některé IDE (což je ale teda hrubý nedostatek), ale docela by mě i zajímalo, jak se bude chovat normálně spuštěná aplikace..
Pokud by se hned zavřela (což nechceme), tak když už system(něco), tak to dát do podmíněného překladu..
#ifdef _WIN32
system("pause");
#endif
Takhle se tam to systémové volání vloží jen při překladu pro windows
a nebude házet undefined error při překladu např. pod linuxem..
Samozřejmě stejně to jde udělat pro linux, mac, unix.. Obecně je dobrá praxe tohle udělat, když už použiju nějaký ten platform-specific kód..
Díky za rady, ale potřeboval bych, aby se mi ty čísla v té kostce měnila, a já když uvidím dvě stejná čísla, tak to zastavím.
Vyskúšaj tento programík.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#if GETCH_LINUX
int getch()
{
struct termios oldt,
newt;
int ch;
tcgetattr( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr( STDIN_FILENO, TCSANOW, &newt );
ch = getchar();
tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
return ch;
}
#endif
#ifdef _WIN32
#include <conio.h>
#define CLEAR system("cls")
#define GETCH_LINUX 0
#else
#include <termios.h>
#include <unistd.h>
#define CLEAR system("clear")
#define GETCH_LINUX 1
#endif
int main(void)
{
int i, n;
char c;
n = 10;
srand(time(0));
for( i = 0 ; i < n ; i++ ) {
CLEAR; // pre win, linux, unix
printf("--- \n");
printf("|%d| \n", rand() % 6);
printf("--- \n");
printf("\n");
printf("--- \n");
printf("|%d| \n", rand() % 6);
printf("--- \n");
printf("\n");
printf("--- \n");
printf("|%d| \n", rand() % 6);
printf("--- \n");
/* klávesou Enter pokračuješ ďalej, klávecou 's' to stopneš */
c = getch();
if (c == 's')
break;
else
continue;
}
printf("\nSTOP!\nUkoncite lubovolnou klavesou.\n");
getch();
return(0);
}
Teraz som si všimol, že v zadaní máš stopnutie medzerníkom, tak si to v kóde oprav.
Nevím přesně, kde to je, nějak se v tom neorientuji.
Už jsem to našel, ale mám jiný problém ta konzole se mi objeví, ale jak cokoliv zmáčknu tak se vypne?
Veľmi staré IDE, prejdi na Code::Blocks alebo Visual Studio.
Toto funguje dobře, ale ještě bych potřeboval, abych to mohl zastavit, a aby mi to počítalo ty body, když jsou dvě čísla stejné.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/* funkcia - pauza na 1 milisekundu */
void sleep(unsigned int msecund)
{
clock_t ciel; // deklarácia premennej typu clock_t
ciel = msecund + clock(); // vložiť do premennej čas o trvaní 1 milisekundy
(sekunda má 1000 milisekúnd)
while (ciel > clock()); // beží kým sa nevy-clock-uje po 0 (nulu)
}
int main(void)
{
int i, n;
n = 10;
srand(time(0));
for( i = 0 ; i < n ; i++ ) {
printf("--- \n");
printf("[%d] \n", rand() % 6);
printf("--- \n");
printf("\n");
printf("--- \n");
printf("[%d] \n", rand() % 6);
printf("--- \n");
printf("\n");
printf("--- \n");
printf("[%d] \n", rand() % 6);
printf("--- \n");
sleep(1500);
system("cls");
}
system ("PAUSE");
return(0);
}
Trosku sa musis posnazit aj sam. Zakladny kod mas, teraz to uz len dokoncit.
zkoušej..
Jinak se programovat nikdy nenaučíš.. musíš se naučit myslet..
dekomponovat problém na podproblémy.. Když to někdo napíše za tebe, je ti
to k ničemu.. V dospělosti za tebe nikdo pracovat nebude.
Je tam pre mňa problém s threadom, nemám s tým ešte žiadne skúsenosti.
Je divné, že ste dostali takú náročnú úlohu.
Ale možno špatne rozumiem zadaniu a je to jednoduché.
Skoro to už mám ale nevím jak to zastavovat tím mezerníkem, můžete mi pomoct?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/* funkcia - pauza na 1 milisekundu */
void sleep(unsigned int msecund)
{
clock_t ciel; // deklarácia premennej typu clock_t
ciel = msecund + clock(); // vložiť do premennej čas o trvaní 1 milisekundy
(sekunda má 1000 milisekúnd)
while (ciel > clock()); // beží kým sa nevy-clock-uje po 0 (nulu)
}
int main(void)
{
int i, n;
int a,b,c,body,zdrzovac;
body= 0;
n = 10;
srand(time(0));
for( i = 0 ; i < n ; i++ ) {
printf("--- \n");
a = rand() % 6;
a++;
printf("[%d] \n", a);
printf("--- \n");
printf("\n");
printf("--- \n");
b = rand() % 6;
b++;
printf("[%d] \n", b);
printf("--- \n");
printf("\n");
printf("--- \n");
c = rand() % 6;
c++;
printf("[%d] \n", c);
printf("--- \n");
if (a == b) {
body++;
}
if (a == c) {
body++;
}
if (b == c) {
body++;
}
printf(" \nAktualni pocet bodu: %d\n", body);
sleep(1500);
system("cls");
}
printf(" \n Celkovy pocet bodu : %d \n", body);
getch();
system ("PAUSE");
return(0);
}
Tak som to nakódil. Môžeš si to pozrieť tu: http://skolka-jazyka-c.freespace.sk/viewtopic.php?…
Samozrejme, že to nie je dokonalé, na tom nemal čas.
Jsi na něho nějaký hodný - měl by se to naučit sám
Jo a pokud by byl OP někdy na vysoké, tak s takovým to postupem prakticky okamžitě skončí - plagiátorství a disciplinární komise..
Ten chlapec nikdy nebude programovať a navyše si myslím, že keď odovzdá
to čo som napísal, môže s tým mať problém. Ak pochopí princíp (popísal
som to myslím dostatočne), môže si to upraviť a bude to jeho.
Zobrazeno 24 zpráv z 24.