BOINC@Poland

Inne => Archiwum => Rozmowy nieBOINCowane => Wątek zaczęty przez: bartsob5 w 05 Grudzień 2005, 20:25

Tytuł: html
Wiadomość wysłana przez: bartsob5 w 05 Grudzień 2005, 20:25
a ja podtrzebuje na informe, zeby ktos mi szybko wylozyl robienie stron w html. szczegolnie, jakby ktos mogl mi pokazac, jak sie robi strone podzielona na 3 czesci, gdzie u gory jest menu, ktore sie nie zmienia, i laduje kolejne strony w dolnym prawym okienku, a lewe dolne pozostaje puste... narazie znam podstawy czyli:
<html>
<head></head>
<body>
<table><tr>
<td> <a href=http://wp.pl target=gl> linczek </a>
    <a href=2.htm target> drugi linczek </a>
    <a href=3.htm> trzeci linczek</a>
    <a href=4.htm> czwarty linczek</a>
    <a href=1.htm> strona menu</a>
</td>
</tr>
<tr>
<td>tu<br>ma<br>byc<br>pus<br>to<br></s></a></u></td>
<td>a tu ma sie otwierac cos innego tylko ze <br> nie wiem co i jak:|</td>
</tr>
</table>
</body>
</html>


mam do dyspozycji program ezhtml...
Tytuł: html
Wiadomość wysłana przez: Mchl w 05 Grudzień 2005, 20:44
A na kiedy to masz?
Bo jak na "za trochę" to polecam http://republika.onet.pl/-2,1,1645,artykuly.html
Sam się z tego uczyłem.
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 05 Grudzień 2005, 20:50
na czwartek... wiem, wiem, jeszcze duzo czasu:P wlasnie mi koleznka ( :oops: ) zwrocila uwage, ze to powinna byc ramka... nic nie jarze...
Tytuł: html
Wiadomość wysłana przez: Mchl w 05 Grudzień 2005, 21:38
Ramka czyli znacznik FRAME
Nie wiem po co tego uczą, skoro tak naprawdę więcej z tym kłopotu niż korzyści i mało gdzie się tego używa.

Tutaj masz. Do czwartku powinieneś zajarzyć ;-)
http://republika.onet.pl/0,1,1645,1670,artykuly.html
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 05 Grudzień 2005, 21:51
no dzieki... to pomoglo, juz mam to o co chodzilo:d naszczescie ostatnio facet nam powiedzial, ze nie musimy tego znac na pamiec, tylko umiec to znalezc;) czyli umiec szperac szybko w necie... w ostatecznosci, mialbys cos przeciwko, gdybym tu sobie powklejal sciagi do brudnopisu?
Tytuł: html
Wiadomość wysłana przez: Mchl w 05 Grudzień 2005, 22:31
Ale sciagać nie należy ;-)
Linki do podręcznika Ci nie wystarczą?
No w ostateczności...
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 05 Grudzień 2005, 22:36
---------- 22:36 05.12.2005 ----------

bo to chodzi o predkosc, bo mozna miec notatki, ale tez dobrze jest miec wszystko na tacy, bo koles potrafi cos, co powinno sie robic 2 godziny, dac na to 15 minut... no mysle ze w ostatecznosci bedzie nieco wiecej... (drugi facet od informy robi 90 sekundowe kartkowki z pascala (choc jego zdaniem to i tak za duzo)) dlatego unikam go szerokim lukiem...

---------- 22:36 ----------

a jeszcze pytanie techniczne... ewentualna sciage, daloby sie wkleic jakos do 'dziennika' z mojego konta? bo sie na tym nie znam...
Tytuł: html
Wiadomość wysłana przez: matti_tm w 05 Grudzień 2005, 22:49
Dołączam się do biadolenia nt. frame'ów. Kto w dobie PHP tego uczy???
Tytuł: html
Wiadomość wysłana przez: Mchl w 05 Grudzień 2005, 22:53
Do dziennika...hmmm...moze byc problem. A nie mozesz na przyklad wyslac to do siebia mailem w pliku tekstowym? Ewentualnie wrzucic na edysk?
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 18 Styczeń 2006, 18:42
---------- 22:55 05.12.2005 ----------

no z tym moze byc problem... ale jheszcze sie zastanowie nad drukowaniem;) cos sie wykombinuje, spr dopiero w czwartek;) narazie sprobuje sie czegos nauczyc(lol!) ;)

---------- 18:42 18.01.2006 ----------

ma ktos z was jakis sposob, aby zdjecie z tla dopasowywalo sie do okna przegldarki?
Tytuł: html
Wiadomość wysłana przez: Mchl w 18 Styczeń 2006, 20:10
O ile wiem, nie ma takiej możliwości. Możesz conajwyżej ustalić tło, czyli sprawić, aby stało w miejscu podczas przewijania.
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 18 Styczeń 2006, 20:27
no do tego wlasnie doszedelm...:D i to bylo moj zamierzony efekt... do tego wyskalowalem piskelami odpowiednio zdjecie tla do mojej przegladarki...
no wlasnie, do mojej przegladarki... w innych znajduje sie bialy pasek u dolu i jest uciety tekst z prawej... chcecie, to skontrolujcie (http://bempes.story.pl)
Tytuł: html
Wiadomość wysłana przez: Mchl w 18 Styczeń 2006, 20:36
Ja bym się zastanowił, czy tła nie rozjaśnić i pisać na czarno.
Poza tym jak ustawisz kolor tla, na podobny do kolorystyki obrazka, to nie bedzie bardzo widać, że się kończy za wcześnie ;)

No i może spróbuj przenieść style do osobnego pliku, który będziesz dołączał w tagach <meta>

--edit--
Siep omyliłem.. nie w meta, tylko poniżej w czymś takim:

<LINK REL="StyleSheet" HREF="style.css" TYPE="text/css">
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 18 Styczeń 2006, 21:19
no dobra, a jak to sie robi? wogole pierwszy raz sie spotkalem z czyms takim jak style css (az dziw ze sie udalo)
Tytuł: html
Wiadomość wysłana przez: Mchl w 18 Styczeń 2006, 21:48
To sie przyzwyczajaj, bo tak się powinno robić strony.
W html zawartość, w css formatowanie.

Robisz plik style.css w którym masz np swoje:

body
{
background-repeat:no-repeat;
background-image:"http://img501.imageshack.us/img501/6465/p9130012kadr9vq.jpg";
background-attachment: fixed;
color:white;}


A potem linkujesz go w pliku html/php


<LINK REL="StyleSheet" HREF="style.css" TYPE="text/css">


I teraz jeżeli maswz ileś tam stron, w ten sposób zrobionych, to robiąc zmianę w tym jednym pliku, możesz we wszystkich na przykład zmienic obrazek tła.
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 18 Styczeń 2006, 21:51
aaaaaaaaaa.... a ten plik style.css powinien sie znajdowac na serwerze, czy moze byc np. u mnie na kompie?
Tytuł: html
Wiadomość wysłana przez: gaciu w 18 Styczeń 2006, 21:52
Zajzyj na stronke:

http://www.w3schools.com/

Tam znajdziesz mnostwo rad odnosnie CSS. Jest caly dzial: Learn CSS. A z oddzielnym plikiem stylow to po prostu musisz stworzyc plik o rozszezeniu .css (i oczywiscie wrzucic go na serwer razem z plikami html). Potem zadeklarowac go w sposob jaki podal Mchl w czesci <head>. Jako maniak czystosci kodu dodam sugestie, aby pisac juz wszystkie znaczniki malymi literkami. Przegladarki lepiej to znosza - XHTML zaczyna wypierac zwyklego HTML-a.
Tytuł: html
Wiadomość wysłana przez: Mchl w 18 Styczeń 2006, 21:56
Słusznie. Muszę poprawić skrypt.
Tytuł: html
Wiadomość wysłana przez: gaciu w 18 Styczeń 2006, 22:10
:] to tak tylko na marginesie bylo. Bo raczej stronki napisene UPPERCASE-m beda dzialac jeszcze wiele lat. Ale milo jest wiedziec ze sie spelnia najnowsze standardy :]
Tytuł: html
Wiadomość wysłana przez: Mchl w 18 Styczeń 2006, 22:58
Też to lubię, dlatego poprawię ;)
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 21 Wrzesień 2006, 18:24
no dobra... sprawa wyglada tak: mielismy zrobic strone szkoly no i jakos tak wyszlo ze facet co chwile zmienia decyzje w kazdym badz razie musze to wstawic na jakis server...

kumple mi doradzili republike.pl bo nie ma wkurzajacych reklam. mam problem z obrazkami... poprostu sie nie laduja... nie chce wiedziec czemu (bo pewnie to kwestia ulozenia plikow w katalogach na serwerze) ale chce wiedziec, co zrobic zeby dzialalo?

o to link jak to wyglada http://bempes.republika.pl
Tytuł: html
Wiadomość wysłana przez: marcin20_21 w 21 Wrzesień 2006, 20:53
Jeśli na dysku u Ciebie strona działa i skopiowałeś wszystkie pliki i katalogi tak, że są jak u Ciebie na dysku, to może być kwestia wielkości liter w nazwie plików graficznych, albo nawet samych rozszezeń (ja tak miałem kiedyś).
Tytuł: html
Wiadomość wysłana przez: Mchl w 21 Wrzesień 2006, 20:57
Republika akurat ma reklamy. :/
Nie wiem co z tymi obrazkami. Wygląda na to że są, ale się nie wyświetlają. Jak się wpisze adres któregoś z nich, to pojawia się czerwony krzyżyk, a jak się wpisze cokolwiek innego, to wyskakuje 404...
Dziwne...
Możesz ewentulanie sprawdzić, czy przy przegrywaniu na serwer klient ftp nie pozamienial Ci dużych liter na małe i vice-versa.
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 21 Wrzesień 2006, 21:49
heh... rzeczywiscie problem lezal w wielkosciach literek... problem jednak byl w tym, ze ja dodatkowo nie wiedzialem za bardzo jak ingerowac w te pliki... :| ale jakos sie udalo..
Tytuł: html
Wiadomość wysłana przez: Mchl w 21 Wrzesień 2006, 23:28
Total Commander! Najwygodniejsze co może być!

Te znaczki ďťż , które masz w rogu, to niestety sprawka tego, że Republika dożuca na początek strony swój skrypt. A te trzy znaki oznaczają, że dokument jest w formacie UTF-8. Gdy są na początku pliku nie są wyświetlane, ale na republice nie są :(
Tytuł: html
Wiadomość wysłana przez: StarExterminator w 23 Wrzesień 2006, 23:01
Nowoczesny kurs XHTML:
http://kurs.browsehappy.pl/

starszy kurs HTML:
http://webmaster.helion.pl/kurshtml/

BOM:
http://osiolki.net/faq/kodowanie

Kiedy ostatnio zaglądałem na republikę dobrze działo na reklamy i BOM zapisywanie dokumentów z rozszerzeniem *.shtml

Powodzenia.
Tytuł: html
Wiadomość wysłana przez: Mchl w 23 Wrzesień 2006, 23:53
Ciekawe, zwłaszcza jeśli da się przechytrzyć reklamy.
Jęsli chodzi o UTF, to ja po prostu zapisuje bez BOM  przy pomocy [google]Notepad++[/google].
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 03 Październik 2006, 11:04
zamieszcze tu malutka petelke z c bho mi chwilowo po9trzebna jest




for (z=1;z<30;z++)
{
    a[z]=getch();
    printf("%c",a[z]);
    if (a[z]==13)
    {goto A;}
   
    }  


#include <conio.h>
#include <stdio.h>

int licz=30;
char a[30];
char b[30];
char c[30];
char d[30];
char e[30];
char f[30];
int z;


int main()


{

for (z=1;z<30;z++)
{
    a[z]=getch();
    printf("%c",a[z]);
    if (a[z]==13)
    {goto A;}
   
    }  
A:
printf("\n");
for (z=1;z<30;z++)
{
    b[z]=getch();
    printf("%c",b[z]);
    if (b[z]==13)
    {goto B;}
}  


B:











printf("\n");        
for (z=1;z<30;z++)
{
    printf("%c",c[z]);
    if (c[z]==13)
    {goto B;}
}


   getch();
   return(0);
}



Tytuł: html
Wiadomość wysłana przez: Mchl w 03 Październik 2006, 13:24
A strukturyzacja kodu gdzie?
Tytuł: html
Wiadomość wysłana przez: kshonek w 03 Październik 2006, 17:24
Cytat: "Mchl"A strukturyzacja kodu gdzie?

hmmmmmm :D poszła na spacer ;) (czytaj: co to jest?)

to drugie to ja wkleiłem, bo nie kumalem o co chodzi w pierwszym, ale bartek ewidentnie cos zwalił, wiec napisalem swoje, lepsze :D
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 03 Październik 2006, 17:24
eeeeee co? :D to koledzy nie wiedzieli jak zrobic i wkleili calosc jak sie odwrocilem :D mowisz o wcieciach w kodzie? wciecia ja robie dopiero wtedy, jak nie moge sie polapac co tam pisze:P
Tytuł: html
Wiadomość wysłana przez: Mchl w 03 Październik 2006, 18:23
Mowie o tym, żeby petle wsadzić do funkcji :D
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 03 Październik 2006, 18:54
no w sumie, to by sie przydalo:D
Tytuł: html
Wiadomość wysłana przez: marcin20_21 w 03 Październik 2006, 22:46
Jeśli mogę coś doradzić, jako student IV roku informatyki, odnośnie programowania w C/C++, to nie zaleca się stosowania goto, bo to unieczytelnia program. Mimo, że zaczynałem programować w czystym asemblerze, gdzie praktycznie musi się stosować skoki JMP :!: , odpowiedniki goto, a dopiero później przeszedłem do C, szybko zrezygnowałem z goto, faktycznie często unieczytelnia program, zawsze da się go uniknąć... :)

Ale to tylko na marginesie, sorki za wymądrzanie się  :oops:
Tytuł: html
Wiadomość wysłana przez: Mchl w 03 Październik 2006, 22:53
A najfajniejsza zabawa jest, jak się szuka sposobu, żeby tego skoku uniknąć. Bo nieraz się wydaje, że "sie nie da" ;). A tak naprawdę, zawsze się da.
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 03 Październik 2006, 23:28
no ja rozumiem ze lepiej nie, czytalem juz o tym, ale jestem na tak zaawansowanym poziomie, ze nie znam zadnego innego sposobu :P mam tez nie wiele czasu wiec nie szukam za bardzo...
Tytuł: html
Wiadomość wysłana przez: marcin20_21 w 03 Październik 2006, 23:55

#include <conio.h>
#include <stdio.h>


int main()
{
int licz=30;
char a[30];
char b[30];
char c[30];
char d[30];
char e[30];
char f[30];
int z;
const int ENTER = 13;

// wczytywanie do tablicy a
for (z=0; z<licz; z++)
{
   a[z]=getch();
   printf("%c",a[z]);
   if (a[z]==ENTER)
   { break; }
}
printf("\n");

// wczytywanie do tablicy b
for (z=0; z<licz; z++)
{
   b[z]=getch();
   printf("%c",b[z]);
   if (b[z]==ENTER)
   { break; }
}
printf("\n");

//tablica c, brakuje wczytywania, jest zrobione tylko wyswietlanie
// wyswietlane sa smieci !
for (z=0; z<licz; z++)
{
   printf("%c",c[z]);
   if (c[z]==ENTER)
   { break; }
}


  getch();
  return(0);
}


Można by np tak to zrobić. Poniżej uwagi co do poprzedniej wersji, mam nadzieję, że program i/lub uwagi pomogą Ci :wink:  Na prawdę nie chcę wyjść na jakiegos bufona, ale pomóc  :roll:

1) Indeksowanie w C jest od zera, to znaczy jak chcesz się dostać do pierwszego elementu, jaki jest w tablicy, to musisz zrobic a[0], stąd z ma być na początku chyba zerem.
2) W pętlach for miała być chyba zmienna licz zamiast 30.
3) Zamiast pisać 13, lepiej zdefiniować zmienną, która mówi, co to jest.
Tytuł: html
Wiadomość wysłana przez: Mchl w 04 Październik 2006, 01:04
A zamiast pętli for można użyć while z odpowiednio zdefiniowanym warunkiem wyjścia z pętli i obędzie się bez break :)
Ponadto zmienną z można definiować lokalnie dla każdej pętli ( for(int z=0,z<licz,z++) {} ). Byłoby ładniej, bo zmienna jest zdefiniowana tylko tam, gdzie jest faktycznie wykorzystywana.
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 04 Październik 2006, 09:02
jak mam z=0 to nie wiedziec czemu, ucina mi pierwsza literke:P 13 nie jest jako zmienna, bo jest to kod entera, ktory w zamysle ma przerywac wczytywanie do tablicy, taki mialem zamiar z tym licz, ale cos mi sie sypalo... a ja wole definiowac zmienne globalnie, bo wtedy mam wszystko w jednym miejscu:P
Tytuł: html
Wiadomość wysłana przez: marcin20_21 w 04 Październik 2006, 09:57
Cytat: "bartsob5"jak mam z=0 to nie wiedziec czemu, ucina mi pierwsza literke:P 13 nie jest jako zmienna, bo jest to kod entera, ktory w zamysle ma przerywac wczytywanie do tablicy, taki mialem zamiar z tym licz, ale cos mi sie sypalo... a ja wole definiowac zmienne globalnie, bo wtedy mam wszystko w jednym miejscu:P

Mi nic nie ucina  8)  W programie (dużym programie zwłaszcza) lepiej napisać ENTER zamiast 13, albo LiczDniTyg zamiast 7... Pewnie, że w tym programie na pierwszy rzut oka widać, o co chodzi z tą 13 ;) Na początku wolałem zmienne globalne. Niestety dostęp do nich jest wolniejszy, niż do lokalnych, co może spowolnić szybkość większego programu. W Twoim to oczywiście tez nie ma większego znaczenia.  :D

Powodzenia z programowaniem  :D


PS
Z takim zapleczem programistów powinniśmy stworzyć własny projekt w BOINC  :wink:
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 04 Październik 2006, 17:04
Cytat: "marcin20_21"
PS
Z takim zapleczem programistów powinniśmy stworzyć własny projekt w BOINC  :wink:


taki jest nasz cel:P od soboty z qba i kshonkiem stawiamy serwer:P
Tytuł: html
Wiadomość wysłana przez: kshonek w 05 Październik 2006, 19:24
Cytat: "bartsob5"
Cytat: "marcin20_21"
PS
Z takim zapleczem programistów powinniśmy stworzyć własny projekt w BOINC  :wink:


taki jest nasz cel:P od soboty z qba i kshonkiem stawiamy serwer:P

a z naszym zapalem to moze postawimy go w ciagu najblizszych 20 lat :D
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 05 Październik 2006, 19:32
Cytat: "kshonek"a z naszym zapalem to moze postawimy go w ciagu najblizszych 20 lat :D


cicho, juz prawie wyczyscilem dysk:P
Tytuł: html
Wiadomość wysłana przez: kshonek w 05 Październik 2006, 19:41
Cytat: "bartsob5"
Cytat: "kshonek"a z naszym zapalem to moze postawimy go w ciagu najblizszych 20 lat :D


cicho, juz prawie wyczyscilem dysk:P

jak mozna pol dnia kopiowac 20gb..........

btw:
#include <stdio.h>
#include <conio.h>
int z, za=255, zb=255, znak=0, linia=0;
int main()
{
char a[za][zb];
printf("\nWpisz co chcesz:\n");
for(linia=0;linia<zb;linia++)
{
   for(znak=0;znak<za;znak++)
   {
       a[linia][znak]=getch();
       if(a[linia][znak]==13)
       {
           break;
       }
       printf("%c",a[linia][znak]);
   }
   if(a[linia][0]==13)
   {
       break;
   }
   printf("\n");
}
char tmp[za];
for(linia=0;linia<zb;linia++)
{
   if(strcmp(a[linia], a[linia+1])>0)
   {
       strcpy(tmp, a[linia]);
       strcpy(a[linia], a[linia+1]);
       strcpy(a[linia+1], tmp);
       if(linia!=0){linia=linia-1;}
   }
}
printf("\nPosortowane:\n");
for(linia=0;linia<zb;linia++)
{
   for(znak=0;znak<za;znak++)
   {
       if(a[linia][znak]==13)
       {
           break;
       }
       printf("%c",a[linia][znak]);
   }
   if(a[linia][0]==13)
   {
       break;
   }
   printf("\n");
}
getch();
return(0);
}


jak sie podoba? Bardzo? to dlaczego nie działa :/ jak wywale to co w 33 lini to tylko wyplywa wszytko o jeden, a z tym powinno teoretycznie działac....
Tytuł: html
Wiadomość wysłana przez: marcin20_21 w 05 Październik 2006, 20:22
1) char a[za][zb];
  'za' i 'zb' powinny byś stałe(const) albo zdeklarowane za pomocą #define, inaczej kompilator nie zna ich rozmiarów w czasie kompilacji i nie wie, ile miejsca na nie przeznaczyć
2)dodałem #include <string.h>, inaczej mój kompilator nie znał funkcji strcmp i strcpy
 to by było tyle, jak chodzi o samą kompilację

Jak chodzi o program, to po pierwsze, znakiem końca stringa (albo jak kto woli łańcucha znakowego) w C jest zero, zaznaczam że nie chodzi o kod ASCII zera, ale zero, stąd a[linia][znak]=0; to ważne, bo tak końca stringu szukają m.in. strcmp i strcpy.
W algorytmie sortowania trzeba chyba zmienić linia o 2 mniej, bo za chwile linia jest zwiększana o 1 (linia ++ ).
Zmieniłem wczytywanie, tak aby było tam zero. W związku z tym zmieniłem też sposób wyświetlania.

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
int z,  znak=0, linia=0;
const int za=10, zb=10;
int main()
{
char a[za][zb];
printf("\nWpisz co chcesz:\n");
for(linia=0;linia<zb;linia++)
{
  for(znak=0;znak<za;znak++)
  {
     a[linia][znak]=getch();
     if(a[linia][znak]==13)
     {
        a[linia][znak]=0; //dopisane
        break;
     }
     printf("%c",a[linia][znak]);
  }
  if(a[linia][0]==0)  //zmiana z 13 na zero
  {
     break;
  }
  printf("\n");
}

char tmp[za];
for(linia=0;linia<zb;linia++)
{
  if (a[linia+1][0]==0) break;     // powoduje wykrycie dojscia do ostatniego napisu (w następnej linii jest na poczatku zero)
  if(strcmp(a[linia], a[linia+1])>0)
  {
     strcpy(tmp, a[linia]);
     strcpy(a[linia], a[linia+1]);
     strcpy(a[linia+1], tmp);
     if(linia!=0){linia=linia-2;}  //zmiana
  }
}

printf("\nPosortowane:\n");
for(linia=0;linia<zb;linia++)
{
printf("%s\n",a[linia]);       //całkowicie zmieniony sposób wyswietlania
if(a[linia][0]==0) break;
}

system("pause");
return(0);
}
Tytuł: html
Wiadomość wysłana przez: kshonek w 05 Październik 2006, 20:43
Cytat: "marcin20_21"1) char a[za][zb];
  'za' i 'zb' powinny byś stałe(const) albo zdeklarowane za pomocą #define, inaczej kompilator nie zna ich rozmiarów w czasie kompilacji i nie wie, ile miejsca na nie przeznaczyć
2)dodałem #include <string.h>, inaczej mój kompilator nie znał funkcji strcmp i strcpy
 to by było tyle, jak chodzi o samą kompilację

Jak chodzi o program, to po pierwsze, znakiem końca stringa (albo jak kto woli łańcucha znakowego) w C jest zero, zaznaczam że nie chodzi o kod ASCII zera, ale zero, stąd a[linia][znak]=0; to ważne, bo tak końca stringu szukają m.in. strcmp i strcpy.
W algorytmie sortowania trzeba chyba zmienić linia o 2 mniej, bo za chwile linia jest zwiększana o 1 (linia ++ ).
Zmieniłem wczytywanie, tak aby było tam zero. W związku z tym zmieniłem też sposób wyświetlania.

Dzieki bardzo za pomoc.
skasowalem <iostream> bo moj kompilator z kolei nie wiedział co to.
Z tym -2 zamiast -1 to było oczywiste, coś mi się przy edyscjach pokićkało bo miałem while wcześniej.
Przestudiuję jeszcze to co poprawiłeś, ale z góry dzięki za pomoc bo widzę, ze działa ;][/img]
Tytuł: html
Wiadomość wysłana przez: marcin20_21 w 05 Październik 2006, 20:56
Proszę bardzo :) wyjaśniłem to bardzo skrótowo i może mętnie, więcej info znalazłbyś w książce jakiejś.

Cytat: "kshonek"skasowalem <iostream> bo moj kompilator z kolei nie wiedział co to.

może bez ".h" (taki jest chyba teraz standard) ...
albo Twój kompilator nie ma takiej:)
Tytuł: html
Wiadomość wysłana przez: kshonek w 05 Październik 2006, 21:23
Cytat: "marcin20_21"Proszę bardzo :) wyjaśniłem to bardzo skrótowo i może mętnie, więcej info znalazłbyś w książce jakiejś.

Cytat: "kshonek"skasowalem <iostream> bo moj kompilator z kolei nie wiedział co to.

może bez ".h" (taki jest chyba teraz standard) ...
albo Twój kompilator nie ma takiej:)

nigdy nie wpadłbym na to, ze te za i zb musza byc const, to samo nie pomyslalem zupelnie o zrobieniu jakiegos warunku w petli od sortowania. W koncu ona tez musi sie kiedys skonczyc.

Dobrze wiedziec ze mozna wypisac a[linia] jakos string, bo te petle do wypisyania jako char to była kompletna bzdura.

Wiedzialem o tym ze ostatni znak tablicy to powinno byc zero, ale bylem pewien ze ono jest zaraz po enterze. A jednak nie.

Proste błedy, ale bez wiadomosci ciezko je poprawic. Wreszcie działa, bo juz mnie zdenerwował ten 'program' ;)
Tytuł: html
Wiadomość wysłana przez: marcin20_21 w 05 Październik 2006, 23:22
Można też zczytywać z klawiatury nie tylko znak po znaku, ale cały string:)
Tytuł: html
Wiadomość wysłana przez: kshonek w 06 Październik 2006, 17:59
Cytat: "marcin20_21"Można też zczytywać z klawiatury nie tylko znak po znaku, ale cały string:)

To ja sie meczylem ;]

Pytanko: czy w C jest jakas funkcja na srednią? Bo w oradnikach/manualach itd nie widze nic average, a jak jest juz przyklad to pbiedny, tzn inta+intb+intc)/3 ;) wiadomo ze mozna to napisac, ale może jest jakaś wbudaowana funkcja, która to zrobi?
Tytuł: html
Wiadomość wysłana przez: marcin20_21 w 06 Październik 2006, 19:20
nie słyszałem o takiej:)
Ale to przecież dwie minuty roboty jest z czasem na herbatkę np ;)


double srednia(double a, double b, double c)
{
return ((a+b+c)/3);
}


dla trzech zmiennych można to tak napisać
Tytuł: html
Wiadomość wysłana przez: kshonek w 06 Październik 2006, 21:05
Cytat: "marcin20_21"nie słyszałem o takiej:)
Ale to przecież dwie minuty roboty jest z czasem na herbatkę np ;)


double srednia(double a, double b, double c)
{
return ((a+b+c)/3);
}


dla trzech zmiennych można to tak napisać

nie no jak nie ma to musze recznie ;) da sie zrobic, ale jezlei byłaby funkcja typu strcmp (bo zamiast niej mozna to zrobic w petli, ale po co jak strcmp szybciej) to mozna by zaoszczedzic troche czasu.

Jeszcze jedno pytanie: czy istnieje funkcja podobna do strcmp, ktora możnaby zastosowac w poprzednim programie, ale tk, aby porównywała wpisane liczby? Ponieważ strcmp traktuje 456 jako mniejszą od 5, co jest oczywiste, ale szukam takiej, aby porownała wartosc liczbowa... Znalazłem gdzies w manualach takie coś jak strcoll, ale działanie ma takie samo jak strcmp.
Tytuł: html
Wiadomość wysłana przez: Mchl w 06 Październik 2006, 21:16
Będziesz musiał przekonwertować zmienną string na int.
Sprawdź, czy jest funkcja strtoint albo coś takiego. Potem porównujesz już jak zwykłe liczby.
Tytuł: html
Wiadomość wysłana przez: marcin20_21 w 06 Październik 2006, 22:05
Cytat: "Mchl"Będziesz musiał przekonwertować zmienną string na int.
Sprawdź, czy jest funkcja strtoint albo coś takiego. Potem porównujesz już jak zwykłe liczby.

Fuinkcja nazywa się atoi.

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
   int n;
   char *str = "12345.67";

   n = atoi(str);
   printf("string = %s integer = %d\n", str, n);
   return 0;
}
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 07 Październik 2006, 13:00
---------- 10:14 07.10.2006 ----------

a moze jeszcze takie pytanie...
jak jest tabliza
a[20][10]

to jest to 10 lini po 20 znakow czy 20 lini po 10 znakow?

---------- 12:00 ----------

wiecie co? ja wciaz tego nie jarze...

mam taki program

#include <conio.h>
#include <stdio.h>
#include <string.h>
#define dlugosc 11
#define wersy 6

char a[dlugosc][wersy];
int z;
int y;
int x;
int dl=dlugosc-1;
int i;
int j;
char p[dlugosc];

int main()
{
printf("wpisz 6 wersow po maksymalnie 255 znakow\n");  
for(x=0;x<wersy;x++)
{
                for(y=0;y<dl;y++)
                {
                                  a[y][x]=getch();
                                  printf("%c",a[y][x]);
                                  if (a[y][x]==13)
                                  {a[y][x+1]=0;
                                   break;}
                                  }
                                  /*if(a[x][0]==0)  //zmiana z 13 na zero
  {
    break;
  }*/
  printf("\n");
}
printf("\n\n\n");
for(x=0;x<wersy;x++)
{
               for(y=0;y<dlugosc;y++)
               {
                                 printf("%i ",a[y][x]);
                                  if (a[y][x]==0)
                                  {printf("\n");
                                  break;}
                                 }}
                                 
char tmp[dlugosc];
for(x=0;x<wersy;x++)
{
  if (a[dlugosc][x]==0) break;    // powoduje wykrycie dojscia do ostatniego napisu (w następnej linii jest na poczatku zero)
  if(strcmp(a[x], a[x+1])>0)
  {
    strcpy(tmp, a[x]);
    strcpy(a[x], a[x+1]);
    strcpy(a[x+1], tmp);
    if(x!=0){x=x-2;}  //zmiana
  }
}

for(x=0;x<wersy;x++)
{
               for(y=0;y<dlugosc;y++)
               {
                                 printf("%c",a[y][x]);
                                  if (a[y][x]==0)
                                  {printf("\n");
                                  break;}
                                 }}

getch();
return(0);
}

dodalem juz czesc tego sortowania co zamiescil marcin, ale nie chodzi! juz nawet dodaje sie zero (na koncu) ale czasem ucina pierwsze literki a sortowanie w ogole lezy..
Tytuł: html
Wiadomość wysłana przez: Mchl w 07 Październik 2006, 21:17
Cytat: "bartsob5"
a moze jeszcze takie pytanie...
jak jest tabliza
a[20][10]

to jest to 10 lini po 20 znakow czy 20 lini po 10 znakow?


Wszystko jedno, bylebyś pamiętal co jest gdzie.
Jak sobie tworzysz taką zmienną, to myślisz "pod pierwszym indeksem będę trzymał numer linii, a pod drugim numer znaku w linii" (najlepiej zapisać to w komentarzu przy deklaracji zmiennej).

W tym listingu jest zdaje się akurat odwrotnie... trochę mniej intuicyjnie IMHO, ale też może być...




No ale z powodu tej kolejności masz problem w linii 50.  Masz tam odwołanie do a
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 07 Październik 2006, 22:10
to mam sie do lini odwolywac jak? w stylu a[]
Tytuł: html
Wiadomość wysłana przez: marcin20_21 w 08 Październik 2006, 03:16
Proponuje takie poprawki do programu:
#include <conio.h>
#include <stdio.h>
#include <string.h>

#define dlugosc 11   //jest chyba taka konwencja w C/C++, że to, co definiujesz
#define wersy 6      // przez define, lepiej robic wielkimi literami

char a[wersy][dlugosc];  // tu zmieniłem, lepiej przyjąc zasadę,
                        //że w ten sposób robisz dwuwymiarowe tablice
                        // proponuje zmienic nazwe na nieco więcej mówiącą,
                        // np napisy....
int z;
int y;
int x;
int dl=dlugosc-1;
int i;
int j;
char p[dlugosc];         // ??

int main()
{
printf("wpisz %d wersow po maksymalnie %d znakow\n",wersy, dlugosc); //tu zmieniłem
for(x=0;x<wersy;x++)
{
            for(y=0;y<dl;y++)
            {
                          a[x][y]=getch();
                          printf("%c",a[x][y]);
                          if (a[x][y]==13)
                           {
                            a[x][y]=0;
                            break;
                           }
            }
            a[x][dlugosc-1] = 0; // to w wypadku jesli zczytywalismy znaki, a ktos nie nacisnal enter'a
                                 // trzeba dodac na koncu liniki znak zero, jako koniec stringa
  printf("\n");
}

printf("\n\n\n");
for(x=0;x<wersy;x++)
{
           for(y=0;y<dlugosc;y++)
           {
                         printf("%3i ",a[x][y]);
                         if (a[x][y]==0)
                          {
                           printf("\n");
                           break;
                          }
           }
}

//sortowanie:
printf("\n\n");
char tmp[dlugosc];
for(x=0;x<(wersy-1);x++)
{
  if(strcmp(a[x], a[x+1])>0)
  {
   strcpy(tmp, a[x]);
   strcpy(a[x], a[x+1]);
   strcpy(a[x+1], tmp);
   if(x!=0){x=x-2;}  //zmiana
  }
}


//wyswietlanie prosciej zrobic teraz tak:
for(x=0;x<wersy;x++)
{
printf("%s\n",a[x]);
}

getch();
return(0);
}


Proponuję komentować kod, i mniej więcej napisać gdzieś, co ma program robić (w każdym programie - o ile będziesz miał z tym trochę więcej wspólnego.

Zrobiłem kilka poprawek.

Co do algorytmu sortowania - ja tylko poprawiłem jego implementację ( czyt. ktoś już to napisał). działa to mniej więcej tak, że sprawdza dwa sąsiadujące napisy, jeśli trzeba je przestawić to je przestawia, a następnie sprawdza, czy tego przestawionego w lewo nietrzeba znowu przesunąć jeszcze bardziej w lewo (trzeba zmniejszyć x - 1, żeby to sprawdzić, ale skoro for zaraz zwiększy x, to bylibyśmy w tym samym miejscu, stąd zmniejszanie o 2).
Jeśli nie łapiesz, jak to działa, możesz spróbować "wymyślić" własny algorytm sortowania, np sortować napisy w taki sposób, jak sortujesz karty do gry w pokera, makao, tysiąca czy w co tam grasz :p

Faktycznie tak jak pisze Mchl, to od Ciebie zależy, jak interpretować tablicę a[20][10]. Najczęściej jednak, jeśli jest to tablica charów, interpretuje się ją jako 20 wierszy po 10 znaków(w tym powinien być tam znak końca stringu zero, o ile używa się funkcji, szukających w ten sposób końca stringu)
Jak pisał już Mchl, z powodu tej odwrotnej indeksacji tablicy był problem w 50 linii, bo funkcja strcmp porównywała dwie kolumny znaków (które mogły nie być zakończone zerem).

Jeśli jeszcze nie bardzo wiesz, dlaczego tak to interpretować, proponuję następujące spojrzenie na sprawę:
1) Kiedy chcesz stworzyć tablicę na napis, to piszesz np
  char napis [10];
2)Gdy chcesz stworzyć tablicę np 5 takich napisów, modyfikujesz odrobinę powyższy zapis, mówiąc, że chcesz mieć 5 wierszy z takimi napisami
  char napisy [5] [10] ;
Tytuł: html
Wiadomość wysłana przez: bartsob5 w 08 Październik 2006, 10:05
a to dodanie na koncu tego zera recznie, nie powoduje ze ucieka jakis znak? bo przy testowaniu mojego programu czasem sie tak zdarzalo (wypisywalem wtedy tekst w wartosciach charow, i rzeczywiscie niektore ostatnie znaki stawaly sie 0, a niektore pierwsze znaki znikaly...)
Tytuł: html
Wiadomość wysłana przez: marcin20_21 w 08 Październik 2006, 10:50
Cytat: "bartsob5"a to dodanie na koncu tego zera recznie, nie powoduje ze ucieka jakis znak? bo przy testowaniu mojego programu czasem sie tak zdarzalo (wypisywalem wtedy tekst w wartosciach charow, i rzeczywiscie niektore ostatnie znaki stawaly sie 0, a niektore pierwsze znaki znikaly...)

Nie powinno się tak dziać. Z tego co testowałem, nie było tego problemu. Zauważ, że ostatni znak wpisany do tablicy z klawitury może być wpisany do  a