matematykaszkolna.pl
+++ Mariusz: c++ win api....napisz program....zgadywarke liczb...(ma być to bardzo prosty program jak najprostszy)...jestem słaby z programowania...teraz nie chce się uczyć bo uczę się wyłącznie do matury i nie mam czasu. Proszę o pomoc.
7 mar 20:38
Braun: Najpierw Twoja próba, nikt nie będzie odrabiał za Ciebie pracy domowej bo dziecko ma maturę.. Co to wgl za tłumaczenie ?
7 mar 20:54
Draghan: Mariusz, nikt nie będzie za Ciebie pisał gotowców. Włącz sobie Code::Blocks i stwórz nowy projekt. Przy wyborze typu, zaznacz Win32 GUI Project. Potem "frame based". IDE wygeneruje Ci najprostszy program z szablonu − po skompilowaniu będziesz miał czyste okienko (w trybie "debug" pojawi się jeszcze konsola w tle). Teraz zostają Ci trzy rzeczy do zrobienia: 1) napisać logiczną obsługę losowania liczby i zapisywania jej do jakiejś, np. globalnej zmiennej, 2) dodać do programu dwie kontrolki: okienko, gdzie user wpisze liczbę i przycisk "OK", 3) napisania prostej funkcji, która po naciśnięciu przez usera przycisku, sprawdza czy podana liczba się zgadza z tą wylosowaną i wyświetlania odpowiednich komunikatów. Punkt trzeci jest zdecydowanie najtrudniejszy, gdyż musisz pobrać tekst z okienka i sprawdzić, czy to w ogóle jest liczba. Chyba, że zamiast okienka tekstowego, zastosujesz sprytną sztuczkę i wstawisz, np. ChoiceBox. emotka
7 mar 20:57
Braun: Trzeba użyć srand(time(NULL)) i biblioteki iostream, cstdlib, time.h, stdio.h pętal while i pęta if i tak już za dużo powiedziałem.
7 mar 21:02
Draghan: Miało być w WinApi, więc włączanie bibliotek iostream i stdio.h jest niezasadne. emotka Poza tym już samo łączenie bibliotek iostream z stdio.h jest nie na miejscu, ponieważ ich funkcjonalność się dubluje. emotka
7 mar 21:07
Braun: Nie doczytałem, i nie chcę mi się pisać za kogoś kodu emotka
7 mar 21:08
Draghan: Mi też nie. Odwalanie za kogoś roboty nigdy nie jest fajne, chyba że to jakieś ambitne zadanie. Mam nadzieję, że Mariusz chociaż skorzysta z naszych wskazówek... emotka
7 mar 21:11
Antonio: Jak chcesz tu masz dwa prościutkie programiki zgadywanki, zobacz sobie jak taki program może wyglądać emotka http://viewerwebcam.za.pl/przyklady.zip
7 mar 21:29
Dziadek Mróz: Nie bawiłem się WinApi w C++
7 mar 21:31
Dziadek Mróz: Losuj liczbę Dopóki nie zgadłeś: Wypisz Nie zgadłeś zgaduj Wypisz Zgadłeś Spytaj o kolejne losowanie lub koniec
7 mar 21:32
Draghan: Dziadek, ten model się w WinApi nie sprawdzi, to będzie bardziej aplikacja oparta na zdarzeniach. emotka Po prostu niech zrobi tak, jak napisałem w pierwszym poście moim, a funkcja z punktu trzeciego niech będzie podpięta pod button. I będzie śmigać. emotka
7 mar 21:35
Antonio: Dziwne jest tylko to że program ma być napisany w winApi to musi być jakaś pomyłka, tworzenie okienka i kontrolek takich jak przyciski, i pola edycji zajmie kilkaset a może nawet tysiące linijek kodu. Tu chyba chodzi bardziej o funkcji Api takie jak okienka dialogowe do wprowadzania danych.
7 mar 21:41
Draghan: Antonio, nie jest tak tragicznie. emotka "tworzenie okienka i kontrolek takich jak przyciski, i pola edycji zajmie kilkaset a może nawet tysiące linijek kodu" − nieprawda. Stworzenie kontrolki to jedna, dwie linijki. emotka A utworzenie okienka jest wygenerowane przez IDE (cały szablonowy program, wraz z include'ami, komentarzami i formatowaniem ma 94 linijki) , więc − choć stosunkowo sporo miejsca zajmuje − nie jest tym obciążony programista. emotka Inna sprawa, że czyste WinAPI jest niewygodne w użyciu − lepiej zastosować jakąś bibliotekę do GUI. Z kolei takie biblioteki też rządzą się swoimi własnymi prawami... Za każdym razem należy sobie wykonać bilans zysków i strat − jednak IMO zazwyczaj przewaga jest po stronie nie−WinAPI. emotka
7 mar 22:05
Mariusz: Widzę że ktoś tu ma problem z czytaniem ze zrozumieniem...skoro nazwałeś mnie "dzieckiem" to ciekawe jakim cudem zdałeś maturę, skoro nawet czytać nie potrafisz. "Proszę o pomoc" a nie o napisanie gotowca. Pozostałym dziękuję za pomoc. Oczywiście skorzystam emotka
7 mar 22:13
Antonio: "Draghan" zintegrowane środowisko programistyczne IDE (Integrated Development Environment) to nie jest API. API są to funkcje windowsa czyli te które znajdują się w bibliotekach w folderach win, sys32 itp. IDE opakowuje API i dlatego można stworzyć przycisk za pomocą jednej linijki kodu. W czystym API to przycisk zajmuje kilkadziesiąt linijek kodu emotka Ale to nie jest tematem tego forum, tylko chodzi o pomoc koledze który ma problem z programowaniem. Dlatego zamieściłem 2 programiki które napisałem 11 lat temu żeby sobie zobaczył jak może to wyglądać. Oczywiście programiki są bardzo prościutkie ale doskonale się nadają do tego zadania emotka.
7 mar 22:35
Draghan: Antonio, proszę Cię. Nie ucz ojca... emotka Nigdzie nie napisałem, że API = IDE, tylko że Code::Blocks zgrabnie generuje nam szablon. emotka W czystym API Windows, tzw. WinAPI, stworzenie kontrolki ogranicza się do funkcji CreateWindow(). Funkcja zwraca nam uchwyt do kontrolki, a pobiera tylko kilka argumentów. Polecam poczytać dokumentację. emotka Chyba że chodzi Ci o to, że API udostępnia nam funkcję CreateWindow, a kod tej funkcji zajmuje kilkaset linijek. Wtedy się mogę ewentualnie zgodzić, ale co programistę obchodzi, jak zorganizowana jest zamknięta biblioteka...? emotka
7 mar 22:43
Dziadek Mróz: Spróbujcie Gtk+, bardzo fajnie się w tym pisze emotka
7 mar 23:04
Draghan: Ja się świetnie bawię z wxWidgets. Ciężko było ogarnąć na początku, ale w sumie to nie jest tak straszna, jak wygląda. No i jest multi−platformowa, więc dodatkowa korzyść. emotka
7 mar 23:08