Zaloguj się, aby obserwować  
Bartuc

Język C / C++ / C# / Java - pytania, problemy...

1979 postów w tym temacie

Miałem właśnie polecić Bloodshed Dev C++. Co Ci w nim nie pasuje? Napisz, a będziemy wiedzieć, czym się kierować przy wyborze odpowiedniego dla Ciebie środowiska.
Może przypadnie Ci do gustu Visual Basic.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 26.11.2012 o 07:43, Harrolfo napisał:

Miałem właśnie polecić Bloodshed Dev C++. Co Ci w nim nie pasuje? Napisz, a będziemy
wiedzieć, czym się kierować przy wyborze odpowiedniego dla Ciebie środowiska.
Może przypadnie Ci do gustu Visual Basic.

Przy Dev miałem kilka razy sytuacje, że nie chciało mi skompilować programu, a bylem na 120% pewny, że jest dobrze napisany. Wykraczał mi się też parę razy, a powiem, że nie korzystałem z niego długo. Przez to musiałem caly program od początku pisać, co nie jest przyjemne, gdy deadline jest za 7h.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

W C było tak, że gdy wpisywało się L to można było uzyskać polskie znaki czy to było coś innego?
printf(L"Ala się kręci");

I jak zdefiniować by po wciśnięciu ''Enter'' program się kończył? Trzeba użyć getchar(), ale jak?
Za pomoc będę wdzięczny.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 26.11.2012 o 15:05, Harrolfo napisał:

Co do środowiska nie pomogę, ale co do getchar();, to wstawiasz pod koniec programu,
przed klamry.

Wiem... ale chodzi mi o zdefiniowanie by np. po wciśnięciu ''q'' i tylko po tym, wyszedł mi z programu.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 26.11.2012 o 19:36, Dregorio napisał:

Wiem... ale chodzi mi o zdefiniowanie by np. po wciśnięciu ''q'' i tylko po tym, wyszedł
mi z programu.


while + if?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Musze w programie pisanym w C robić po każdym poleceniu sekundowe przerwy, jak mam to zrobić? Użyć ''char'' by tylko dwa znaki były brane pod uwagę, np. 1-włącz, 0-wyłącz robota? Będę wdzięczny za pomoc.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 08.12.2012 o 19:20, Dregorio napisał:

Musze w programie pisanym w C robić po każdym poleceniu sekundowe przerwy, jak mam to
zrobić? Użyć ''char'' by tylko dwa znaki były brane pod uwagę, np. 1-włącz, 0-wyłącz
robota? Będę wdzięczny za pomoc.


Nie sprawdzone, ale powinno działać dla pierwszego http://www.wikihow.com/Delay-in-C .

Co do drugiego: instrukcja case? Działała by tylko dla tych dwóch wartości, jeśli jednak musisz ograniczyć typ (a nie co program przyjmuje od użytkownika lub z czym tylko działa) do tych dwóch znaków, to niestety nie pamiętam jak powinno się to zrobić.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 08.12.2012 o 20:47, Boguslav4 napisał:

Nie sprawdzone, ale powinno działać dla pierwszego http://www.wikihow.com/Delay-in-C
.


To pierwsze rozwiązanie z pustą pętlą for mi się bardzo nie podoba. Zeżre mnóstwo mocy procesora bo to nie jest tak że on NIC wtedy nie robi...
Sleep za to jest okej.

Dnia 08.12.2012 o 20:47, Boguslav4 napisał:

Co do drugiego: instrukcja case? Działała by tylko dla tych dwóch wartości, jeśli jednak
musisz ograniczyć typ (a nie co program przyjmuje od użytkownika lub z czym tylko działa)
do tych dwóch znaków, to niestety nie pamiętam jak powinno się to zrobić.


Można tak, można też zrobić to w pętli while czy nawet za pomocą if-ów.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 08.12.2012 o 20:52, ziptofaf napisał:

> Nie sprawdzone, ale powinno działać dla pierwszego http://www.wikihow.com/Delay-in-C

>
.

To pierwsze rozwiązanie z pustą pętlą for mi się bardzo nie podoba. Zeżre mnóstwo mocy
procesora bo to nie jest tak że on NIC wtedy nie robi...
Sleep za to jest okej.


To bardziej dziwny trik niż dobre rozwiązanie, ale wolałem pozostawić wybór :P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 08.12.2012 o 21:05, Dregorio napisał:

/.../
Podziękował.

@UP
Jak to będzie wyglądało na if`ach?


Hm. Nie jestem pewien, co robi program, ale prawdopodobnie pobierasz od użytkownika wartość podpisywaną potem pod pewną zmienną typu char. Możesz potem zwyczajną konstrukcją if zrobić np. if (określony warunek spełniony np. wartość zmiennej równa się ileś){instrukcja co ma robić program}
else {co ma robić gdy zmienna inna/warunek niespełniony}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Można na przykład:

if(a == ''0'')
{
//co ma zrobić
}

if(a == ''1'')
{
//co ma zrobić
}

Natomiast jeśli szczególnie interesuje nas tylko jeden typ zachowania, to możemy dać:

if(a==''0'')
{
//co ma zrobić
}

else
{
//co ma zrobić
}

Oczywiście wcześniej w programie należy zdefiniować zmienną char a.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

/.../
Może wcześniej źle sie wyraziłem. Chodzi dokładnie o to, że nie dział mi else. Nie chce mi kompilować. No i nawet jesli dam ''1'', to nie wyświetla mi się to co chcę.

char a0;
if(a0 == ''0'')
{
printf("Zamyknij chwytak:");
}
else if(a0 == ''1'')
{
printf("Otwieraj chwytak:");
}
Gdy dam '';'' po bloku to nie chce kompilować, jak dam samo else tez nie kompiluje.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 08.12.2012 o 22:54, Dregorio napisał:

/.../
Może wcześniej źle sie wyraziłem. Chodzi dokładnie o to, że nie dział mi else. Nie chce
mi kompilować. No i nawet jesli dam ''1'', to nie wyświetla mi się to co chcę.

char a0;
if(a0 == ''0'')
{
printf("Zamyknij chwytak:");

Literówka w tekście do wypisania ;)
I według mnie zbędny dwukropek.

Dnia 08.12.2012 o 22:54, Dregorio napisał:

}
else if(a0 == ''1'')
{
printf("Otwieraj chwytak:");

Też zbędny dwukropek.

Dnia 08.12.2012 o 22:54, Dregorio napisał:

}
Gdy dam '';'' po bloku to nie chce kompilować, jak dam samo else tez nie kompiluje.

Ta część programu jeśli chodzi o budowę jest ok.
Ale nigdzie nie pobierasz wciśniętego klawisza i nie przypisujesz go do a0.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

/.../
Przy char a0 zapomniałem dopisać =getchar().
To nie sa dwukropki tylko średniki, a mnie uczono zawsze stawiać :D
No i dalej nie wiem dlaczego nie mogę dac samo else, tylko else if jak gdybym chciał dać więcej warunków...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 09.12.2012 o 00:04, Dregorio napisał:

Przy char a0 zapomniałem dopisać =getchar().

To zmienia postać rzeczy :)

Dnia 09.12.2012 o 00:04, Dregorio napisał:

To nie sa dwukropki tylko średniki, a mnie uczono zawsze stawiać :D

Chodzi mi o zawartość cudzysłowu w printf ;)
A średniki wiem, że się stawia, inaczej określona składowa programu nie zadziała.
Średniki stawia się bardzo często, ale są wyjątki, jak chociażby } w zakończeniu pętli, czy instrukcji warunkowych. Więc nie stawia się zawsze :)

Dnia 09.12.2012 o 00:04, Dregorio napisał:

No i dalej nie wiem dlaczego nie mogę dac samo else, tylko else if jak gdybym chciał
dać więcej warunków...

Moment, czyli else if Ci działa?

Możesz zamieścić cały kod?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

/.../
#include <stdio.h>
int main()
{
char a0 = getchar();
if(a0 == ''0'')
{
printf("Zamknij chwytak");
}
else if(a0 == ''1'')
{
printf("Otwieraj chwytak");
}

return 0;
}
Daje ten wycinek, bo cały to by mi za spam wzięło. No tu ''else if'' czyta, else już nie. Więc to trochę dziwnie. Musze jeszcze po każdym takim bloku na sekundę go pauzować,'' ale też nie umiem...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Mi działa z samym elsem.

Trochę zmodyfikowałem Twój kod, żeby wypisany tekst był przez pewien czas widoczny.

#include <stdio.h>
#include <stdlib.h>
int main()
{
char a0 = getchar();
if(a0 == ''0'')
{
printf("Zamknij chwytak \n");
system("pause");
}
else //if(a0 == ''1'')
{
printf("Otwieraj chwytak \n");
system("pause");
}

return 0;
}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dodałem sobie śnieg na stronę http://www.musicproducers.pl i problem tkwi w tym, że nie wiem jak zmodyfikować skrypt, aby śnieg leciał przez całą wysokość strony, do samego dołu. Niby w ustawieniach jest do wyboru "windowheight" or "pageheight", jednak po zmianie na pageheight nic się nie zmienia (dlatego ustawiłem z powrotem ''windowheight''), no chyba, że czegoś nie rozumiem :D

Skrypt:

<script type="text/javascript">

/******************************************
* Snow Effect Script- By Altan d.o.o. ( http://www.altan.hr/snow/index.html)
* Visit Dynamic Drive DHTML code library ( http://www.dynamicdrive.com/) for full source code
* Last updated Nov 9th, 05'' by DD. This notice must stay intact for use
******************************************/

//Configure below to change URL path to the snow image
var snowsrc="sniezynka.png"
// Configure below to change number of snow to render
var no = 20;
// Configure whether snow should disappear after x seconds (0=never):
var hidesnowtime = 0;
// Configure how much snow should drop down before fading ("windowheight" or "pageheight")
var snowdistance = "windowheight";

///////////Stop Config//////////////////////////////////

var ie4up = (document.all) ? 1 : 0;
var ns6up = (document.getElementById&&!document.all) ? 1 : 0;

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

var dx, xp, yp; // coordinate and position variables
var am, stx, sty; // amplitude and step variables
var i, doc_width = 800, doc_height = 600;

if (ns6up) {
doc_width = self.innerWidth;
doc_height = self.innerHeight;
} else if (ie4up) {
doc_width = iecompattest().clientWidth;
doc_height = iecompattest().clientHeight;
}

dx = new Array();
xp = new Array();
yp = new Array();
am = new Array();
stx = new Array();
sty = new Array();
snowsrc=(snowsrc.indexOf("musicproducers.pl")!=-1)? "sniezynka.png" : snowsrc
for (i = 0; i < no; ++ i) {
dx = 0; // set coordinate variables
xp = Math.random()*(doc_width-50); // set position variables
yp = Math.random()*doc_height;
am = Math.random()*20; // set amplitude variables
stx = 0.02 + Math.random()/10; // set step variables
sty = 0.7 + Math.random(); // set step variables
if (ie4up||ns6up) {
if (i == 0) {
document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><a href=\" http://musicproducers.pl\"><img src=''"+snowsrc+"'' border=\"0\"><\/a><\/div>");
} else {
document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><img src=''"+snowsrc+"'' border=\"0\"><\/div>");
}
}
}

function snowIE_NS6() { // IE and NS6 main animation function
doc_width = ns6up?window.innerWidth-10 : iecompattest().clientWidth-10;
doc_height=(window.innerHeight && snowdistance=="windowheight")? window.innerHeight : (ie4up && snowdistance=="windowheight")? iecompattest().clientHeight : (ie4up && !window.opera && snowdistance=="pageheight")? iecompattest().scrollHeight : iecompattest().offsetHeight;
for (i = 0; i < no; ++ i) { // iterate for every dot
yp += sty;
if (yp > doc_height-50) {
xp = Math.random()*(doc_width-am-30);
yp = 0;
stx = 0.02 + Math.random()/10;
sty = 0.7 + Math.random();
}
dx += stx;
document.getElementById("dot"+i).style.top=yp+"px";
document.getElementById("dot"+i).style.left=xp + am*Math.sin(dx)+"px";
}
snowtimer=setTimeout("snowIE_NS6()", 10);
}

function hidesnow(){
if (window.snowtimer) clearTimeout(snowtimer)
for (i=0; i<no; i++) document.getElementById("dot"+i).style.visibility="hidden"
}


if (ie4up||ns6up){
snowIE_NS6();
if (hidesnowtime>0)
setTimeout("hidesnow()", hidesnowtime*1000)
}

</script>

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Utwórz konto lub zaloguj się, aby skomentować

Musisz być użytkownikiem, aby dodać komentarz

Utwórz konto

Zarejestruj nowe konto na forum. To jest łatwe!


Zarejestruj nowe konto

Zaloguj się

Masz już konto? Zaloguj się.


Zaloguj się
Zaloguj się, aby obserwować