
Artur.M
Stały użytkownik-
Postów
83 -
Dołączył
-
Ostatnia wizyta
Treść opublikowana przez Artur.M
-
zamieść tu na forum fragmenty każdego z plików w ktorych dołączasz nagłówki. Przypuszczam że kompilator nie widzie gdzie są zdefinioane funkcje których nagłówki umieściłeś w oddzielnym pliku.
-
o ile dobrze pamiętam bo (naszczęście ) BCB odstawiłem to robiło się tak: Form1->DoubleBuffered = true; //oczywiscie za Form1 wstaw nazwe swojej //foremki
-
jest tez inne wyjscie. Mozesz (jeżeli korzystasz z Windowsa) uruchomić cmd.exe tam wpisac ścierzkę do twojego programu i wtedy konsola nie zniknie nawet jeżeli twój program już zakończy działanie.
-
upsss nie zauwazyłem że on to robi na tablicy int`ów :) ale jeżeli nie zamierzasz wykonywać jakiś działań na tej liczbie to czy nie lepiej było by użyć tablicy typu char . Oszczędniej na pamięci ;)
-
ja mam take dwie propozycje. Po pierwsze dobrze jest wypełnić tablice na początku zerami. dzieki temu nie ma potem często nie miłych sytuacji. Poza tym zawartość tablict t możesz wyswietlić w ten sposób: printf("%s",t); jedna pętla mniej będzie.
-
wrzuć je do jakiegoś kataloguu Include w folderze gdzie masz zainstalowanego Deva. Tam będę tez inne pliki nagłowkowe. A bibliotekę możesz np. dołączyć gdzies w opcjach projektu
-
no to pisz jak by coś nie szło
-
a nie działa ?
-
Powinno działeć MoveWindow
-
no napisałem ci przecież :) jak okno główne zmieni wielkość to będzie komunikat WM_SIZE pobierasz z niego nowe wymiary. Przykładowo wydłużyło się o 20 więc i wydłużamy edita o 20 Nie wiem tylko czy komunikat przychodzi po skończeniu skalowania czy w trakcie :/
-
pokombinuj z wiadomością WM_SIZE okno odbiera tą wiadomość, w lParam masz wysokość i szerokość i odpowiwednio zwiększasz/zmniejszasz kontrolke EDIT
-
ja jestem w 1kl. LO i kupiłem nie dawno Cormena, ciężka lektura. Ale trzeba przez to przebrnąć. Najgorsza ta matma. Ale można się czegoś przynajmniej nauczyć:)
-
co do pierwszego się nie zgodze bo ta pamięć i tak jest już zaalokowana. Ja bym tylko tam zamiast jakis "śmieci" wstawił zera. No ale z drugij strony można sie objeść bez tego tylko że potem są taki kwiatki ;)
-
myślę że nie było by tego problemu jak byś na samym początku stworzył zmienną kop o jeden większą i wypełnił całą zerami
-
[ansi C Lub C++] Program Podmieniający Dany Wyraz Na Inny
Artur.M odpowiedział(a) na Rorschach temat w Programowanie
no to dostaliście już dużo rozwiązań. Tylko nie wpadnijcie z identycznymi ;) -
[ansi C Lub C++] Program Podmieniający Dany Wyraz Na Inny
Artur.M odpowiedział(a) na Rorschach temat w Programowanie
tam komuś odpowiedziałem na podobny temat: http://forum.pcmaniak.pl/ftopic32147.php może to ty ale nie mam pewności -
[ansi C Lub C++] Program Podmieniający Dany Wyraz Na Inny
Artur.M odpowiedział(a) na Rorschach temat w Programowanie
Taką prostą metodą a CHYBA trochę szybszą od naiwnej było by jak byś szukaszw tekscie litery A jeżeli znalazła się jakaś to wtedy sprawdzasz dwie kolejne czy równają sie L i A. I ewentualnie zamieniasz. -
Prawdopodomnie używasz kompilatora z c++ buildera bo on dopuszcza jeszcze takie starsze wersje. Powinno się używam nie iostream.h tylko iostream musismy też wtedy korzystać z przestrzeni nazw. Dla biblioteki standardowej jest to std czyli albo dodajemy na początku using namespace std; albo wszędzie piszemy std::cout std::cin itd.
-
no to napisz tutaj z czym masz problem :) moze pomożemy :)
-
sorry ale nie chciało mi się już wnikać w przyczynę błędu(strasznie zamotany ten kod) ale napisałem Ci moją wersję. Jak dobrze wszystko zrozumiałem to powinna działć tak jak ta twoja. #include<stdlib.h>#include<cstring>#include<cstdio>void autoryzacjia(void);void NowyTest(void);void Testuj(void);void Menu(void);using namespace std;char haslo[] = "password";void Menu(void){ printf("Wybierz interesujaca Cie opcjie:\n"); printf("1 - Stwórz nowy test (tylko dla nauczycieli)\n"); printf("2 - Przeprowadź test\n"); printf("3 - Zakończ\n"); int choose = 0; scanf("%d",&choose); switch(choose) { case 1: { autoryzacjia(); } break; case 2: { Testuj(); } break; default: { return; } }}void autoryzacjia(void){ printf("Podaj haslo aby dokonac zmian\n"); char pass[40]; scanf("%s",pass); if(!strcmp(haslo,pass)){ NowyTest(); } else{ printf("Zle haslo"); system("cls"); Menu(); }}void NowyTest(void){ unsigned int uiIloscPytan; unsigned int uiIloscOdp; printf("Ile pytan chcesz umiescic w tescie?\n"); scanf("%d",&uiIloscPytan); printf("Podaj ile mozliwosci odpowiedzi chcesz dac\n"); scanf("%d",&uiIloscOdp); FILE* file = fopen("c://Pytania.dat","wb"); fwrite(&uiIloscPytan,sizeof(int),1,file); fwrite(&uiIloscOdp,sizeof(int),1,file); char Pytanie[100]; memset(Pytanie,0,100); char Odp[30]; unsigned int Poprawne; for(int i = 0; i<uiIloscPytan;++i) { printf("Podaj pytanie:"); fflush ( stdin ); gets(Pytanie); fwrite(&Pytanie,sizeof(Pytanie),1,file); memset(Pytanie,0,100); for(int j = 0; j< uiIloscOdp; ++j) { printf("Podaj %d odpowiedź:",j+1); gets(Odp); fwrite(&Odp,sizeof(Odp),1,file); memset(Odp,0,30); } printf("\nKtóra odpowiedź jest pooprawna(wpisz numer odpowiedzi zaczynajac od 1)"); scanf("%d",&Poprawne); fwrite(&Poprawne,sizeof(int),1,file); } fclose(file); system("cls"); Menu();}void Testuj(void){ char w; unsigned int wybor; unsigned int uiPunkty = 0; FILE* file = fopen("c://Pytania.dat","rb"); if(file == NULL){ printf("Brak testu\n"); printf("\n Jezeli chcesz wrocic do menu nacisnij M, w przeciwnym razie dowolny inny klawisz\n"); scanf("%c",&w); if(w == 109){ system("cls"); Menu(); } return; } unsigned int uiIloscPytan; unsigned int uiIloscOdp; char Pytanie[100]; char Odp[30]; unsigned int Poprawne; fread(&uiIloscPytan,sizeof(unsigned int),1,file); fread(&uiIloscOdp,sizeof(unsigned int),1,file); for(int i = 0; i < uiIloscPytan; ++i) { printf("Pytanie numer %d ",i+1); fread(&Pytanie, sizeof(Pytanie),1,file); printf("%s\n",Pytanie); memset(Pytanie,0,100); for(int j = 0; j< uiIloscOdp; ++j) { printf("%d)",j+1); fread(&Odp,sizeof(Odp),1,file); printf("%s\n",Odp); memset(Odp,0,100); } fread(&Poprawne,sizeof( int ), 1,file); printf("Podaj numer prawidlowej odpowiedzi:"); scanf("%d",&wybor); if(wybor == Poprawne){ printf("Poprawna odpowiedź\n"); uiPunkty++; } else { printf("Zla odpowiedz\n"); } } fclose(file); printf("Uzyskales %d punktow na %d mozliwych\n",uiPunkty, uiIloscPytan); printf("\nJezeli chcesz wrocic do menu nacisnij M, w przeciwnym razie dowolny inny klawisz\n"); scanf("%c",&w); if(w == 109){ system("cls"); Menu(); }}
-
i bardzo dobrze... ;) Trzeba sie starać pisac wydaje rzeczy
-
ale w tym programie akurat chyba nie jest potrzebna genialna wydajnośc :)
-
Ale chyba ten "mój" sposób byłby nieco szybszy. A co do wczytywania całych zdań. To zamiast funkcji scanf użyj gets(normal);
-
Już obsługuje małe litery. #include<cstdio>#include<string>char* Mors[ 26 ] = { "* - ", "- * * *", "- * - *", "- * *" , "*", "* * - *", "- - *", "* * * *", "* *", "* - - -" , "- * -" , "* - * *", "- -", "- *", "- - -", "* - - *", "- - * -", "* - *", "* * *", "-", "* * -", "* * * -", "* - -", "- * * -" , "- * - -", "- - * *" }; int main(){ char normal[100]; printf("Podaj tekst do zamiany"); scanf("%s",&normal); for(int i = 0; i < strlen(normal); i++) { if( normal[ i ] > 64 && normal[ i ] < 91 ){ printf("%s\n",Mors[ (int)normal[i] - 65 ] ); } else if( normal[ i ] > 96 && normal[ i ] < 123 ) { printf("%s\n", Mors[ (int) normal[i] - 97 ] ); } else { printf("%c\n",normal[i]); } } return 0; }
-
#include<cstdio>#include<string>char* Mors[ 26 ] = { "* - ", "- * * *", "- * - *", "- * *" , "*", "* * - *", "- - *", "* * * *", "* *", "* - - -" , "- * -" , "* - * *", "- -", "- *", "- - -", "* - - *", "- - * -", "* - *", "* * *", "-", "* * -", "* * * -", "* - -", "- * * -" , "- * - -", "- - * *" }; int main(){ char normal[100]; printf("Podaj tekst do zamiany"); scanf("%s",&normal); for(int i = 0; i < strlen(normal); i++) { if( normal[ i ] < 65 || normal[ i ] > 90 ){ printf("%c",normal[ i ] ); } else { printf("%s\n",Mors[ (int)normal[i] - 65 ] ); } } return 0; }