Just nu i M3-nätverket
Gå till innehåll

Phalle

Medlem
  • Antal inlägg

    59
  • Gick med

  • Senaste besök

Om Phalle

  • Medlemstitel
    Användare
  • Födelsedag 1986-09-15

Kontaktinformation

  • Hemsida
    http://

Profil

  • Ort
    Ea
  1. Jo, nu klarnade det lite grann. Tack så mycket.
  2. Tja! Jag försöker lösa samma problem. Har läst igenom både zerblat och Anjuna Moons lösningar, men fattar inte riktigt allt. Ni kan inte ge exempel med siffror istället? Vad står X'et för i Anjuna Moons lösning?
  3. LizardKng: Hur menar du? Läsa in alla tecken eller läsa in orden? Det står helt still i mitt huvud. Kommer inte på något fungerande sätt att få den att skriva ut nästa rad eller nästa stycke. Det här är en sak jag inte gillar med programmering. Först går allt mjukt och bra, sen så tokfastnar man på något
  4. Ja. Med LOG blev det bättre tror jag.
  5. Ok här kommer koden då: [log] /*#define MSS*/ #include <stdio.h> #include <curses.h> #include <string.h> #include <assert.h> /***************************************************************************** Miscellaneous functions - using pdcurses. *****************************************************************************/ /* Definierade i pdcurses.. */ extern int LINES, COLS; /*************************************************************************** Funktionsdefinitioner ***************************************************************************/ void hl_rc(int r1, int c1, int len, int ch); void frame(int r1, int c1, int r2, int c2, int ch); void vl_rc(int r1, int c1, int len, int ch); void blankrow(int row); void command(char kommando[], char filnamn[]); void filutskrift(char *str, int row); void footer(char *str); /* Slumpar ett heltal i intervallet start - stop */ int slump(int start, int stop) { return start+rand()%(stop-start+1); } /* Byter v„rden p† 2 variabler vars adresser l„mnas till funktionen */ void swap(int *pi1, int *pi2) { int tmp = *pi1; *pi1 = *pi2; *pi2 = tmp; } /* Ritar en ram på skärmen med öv. vänstra hörn i rad1, col1 och ned. högra i rad2, col2 */ void frame(int r1, int c1, int r2, int c2, int ch) { assert(r1>=0 && c1>=0 && r2>=0 && c2>=0); hl_rc(r1, c1, (c2-c1+1), ch); hl_rc(r2, c1, (c2-c1+1), ch); vl_rc(r1, c1, (r2-r1+1), ch); vl_rc(r1, c2, (r2-r1+1), ch); } /* Ritar en horisontell linje med början i rad1, col1 - med längden len, och med tecknet ch */ void hl_rc(int r1, int c1, int len, int ch) { int i; r1 = makeinrange(r1, 0, LINES-1); c1 = makeinrange(c1, 0, COLS-1); len = makeinrange(len, 0, COLS-c1); move(r1, c1); for (i=0; i<len; i++) addch(ch); refresh(); } /* Som hl_rc - fast vertikalt ! */ void vl_rc(int r1, int c1, int len, int ch) { int i; r1 = makeinrange(r1, 0, LINES-1); c1 = makeinrange(c1, 0, COLS-1); len = makeinrange(len, 0, LINES-r1); for (i=0; i<len; i++) { move(r1+i, c1); addch(ch); } refresh(); } /* Skriver inramad och centrerad rubrik */ void header(char *str, int ch) { frame(0, 0, 1, COLS-1, '*'); move(0, (COLS-strlen(str))/2); printw(str); refresh(); } /* Skriver meddelande på rad y och väntar på tangenttryckning. Returnerar nedtryckt tangent */ void message(char *str, int row) { blankrow(row); move(row, 0); //Vänsterjusterad //move(row, (COLS-strlen(str))/2); // Centrerad text printw("%s", str); refresh(); } void filutskrift(char filnamn[], int row) { char c; int pos; FILE *text; text = fopen(filnamn, "r"); for(row=2; row <=22; row++) blankrow(row); move(2, 0); //Vänsterjusterad //move(row, (COLS-strlen(str))/2); // Centrerad text if (text == NULL) { message("Kunde inte öppna filen!\n", 2); footer("CMD: "); } while((c=fgetc(text)) !=EOF) { if(c == 'å') printw("\x86"); else if(c=='ä') printw("\x84"); else if (c=='ö') printw("\x94"); else if (c=='Ä') printw("\x8E"); else if (c=='Å') printw("\x8F"); else if (c=='Ö') printw("\x99"); else printw("%c", c); } ; fclose(text); refresh(); footer("CMD: "); } void footer(char *str) { char kommando[30]; char filnamn[50]; message(str, LINES-1); scanw("%s %s", kommando, filnamn); command(kommando, filnamn); } /* Skriver meddelande på sista raden och väntar på tangenttryckning */ int makeinrange(int tal, int dnlim, int uplim) { tal = tal < dnlim ? dnlim : tal; tal = tal > uplim ? uplim : tal; return tal; } void blankrow(int row) { move(row, 0); clrtoeol(); } void kbflush() { scanw("%*[^\n]"); getch(); } void command(char kommando[], char filnamn[]) { if (kommando[0] == 'q' || kommando[0] == 'Q') { exit(EXIT_FAILURE); } else if (kommando[0] == 'o' || kommando[0] == 'O') { header(filnamn, 0); filutskrift(filnamn, 2); } else message("ERROR!\n", 2); } int main(int argc, char *argv[]) { initscr(); echo(); clear(); refresh(); if (argc > 2) message("Too many parameters!", 2); header("Press Q to quit. 'o filname' opens a file", 0); hl_rc(LINES-2,0,COLS,'*'); if (argv[1] != NULL) { header(argv[1], 0); filutskrift(argv[1], 2); } footer("CMD: "); system("PAUSE"); return 0; } [/log] [inlägget ändrat 2005-11-06 19:46:38 av Phalle] [inlägget ändrat 2005-11-06 19:47:34 av Phalle]
  6. Halloj. Håller på och skriver ett program som ska läsa in en text fil och skriva ut den på skärmen. På raden längst ner i programmet finns en kommandorad, så om jag skriver "o filnamn.txt" så öppnar den filen. Och på raden högst upp i programmet så står filnamnet. Men kruxet är när man har mycket text i filen. Då visas bara de första, x antal, raderna. Hur ska man göra föra kunna bläddra upp och ned och "rulla" texten rad för rad? Har försökt använda mig av fseek och ftell, men jag kommer ingen vart eftersom jag inte fattar hur man ska använda dessa. Koden finns här: http://legacy.lostsource.net/kod.txt ville inte klistra in den här då den är ganska lång [inlägget ändrat 2005-11-06 15:08:59 av Phalle]
  7. Tjenare! Sitter och klurar på lite C programmering. #include <stdio.h> #include <stdlib.h> void swap(int *aP, int *bP); void swap(int *aP, int *bP) { int slask; slask = *aP; *aP = *bP; *bP = slask; } void ordna(int x,int y,int z); void ordna(int x, int y, int z ) { if ( x > y ) swap( &x, &y ); if ( x > z ) { swap( &x, &z ); swap( &y, &z ); } else if ( y > z ) swap( &y, &z ); } int main() { int x = 0; int y = 0; int z = 0; printf("Skriv in tre tal: " ); scanf("%d %d %d", &x, &y, &z ); swap(&x, &y ); printf("%d %d\n", x, y ); ordna(&x, &y, &z); printf("%d %d %d\n", x, y, z ); system("PAUSE"); return 0; } [Warning] In function `main': 41 [Warning] passing arg 1 of `ordna' makes integer from pointer without a cast 41 [Warning] passing arg 2 of `ordna' makes integer from pointer without a cast 41 [Warning] passing arg 3 of `ordna' makes integer from pointer without a cast Det är altså "ordna(&x, &y, &z);" som får felet. Vad betyder det där felet?
  8. Internetmatte från KTH. Det är två kurser (3+2 poäng). Kurserna inehåller repetition från gymnasie och förberedande till högskola. Jag läser också det och kan säga att lärarna där kan ibland vara lite sega på att svara. Ni här är mycket effektivare :-) Eftersom det är repetition säger det att man borde lärt sig allt det här på gymnasiet, men det är säkert 20-30% av kurserna som jag aldrig sett förut. Har dock bara inlämningsuppgift kvar på första kursen. Den handlar om förkortning av bråk. Euklides algoritm och kedjebråksutveckling, som jag aldrig använt mig av/hört talas om innan. Fattar inte så mycket av det och de vill att man ska motivera varför det alltid går att förkorta på det sättet... Aja får väl traggla vidare och se om jag kommer på något smart. Till er som läser de här kurserna. Keep up the good work! En del tal är helt mogo, men de går att lösa =)
  9. Tack Haakon för din bifogade bild, den hjälpte mycket. Till det första talet nu. Jag har fått en andragradsevkation, men jag får fel när jag ska lösa det som står i roten ur delen. Kan ni hjälpa mig med det? Jag bifogar en bild så det blir lättare att se vad som står. [bild bifogad 2005-07-29 16:43:14 av Phalle] Edit: såg att roten ur tecknet på den översta ekvationen blev lite för lång, men ni ser nog i alla fall hur det ska se ut. [inlägget ändrat 2005-07-29 16:44:25 av Phalle]
  10. Insåg att det finns ett mindre fel i den första det ska vara: -tan(x)+sqrt(3)/tan(x)=1+sqrt(3)
  11. Ok. Tack. Då får jag fortsätta traggla med det här då.
  12. 1. Hur skulle du lösa den utan räknare? När man räknat ut y så kan man ju ta inversen till tangens för att få ut x. Men det är ju lite svårt i huvudet. 2. Har jag gjort rätt hittils? VL: 4cos(x)*cos(x)-16sin(x)cos(x)+16sin(x)*sin(x) HL: A(1-2sin(x)*sin(x))+B(2sin(x)cos(x))+C Kan man sen göra så här: -16sin(x)cos(x)=B(2sin(x)cos(x))+C 4cos(x)*cos(x)+16sin(x)*sin(x)=A(1-2sin(x)*sin(x))+C ? Eller är det tok fel att göra? [inlägget ändrat 2005-07-28 16:09:38 av Phalle]
  13. Har två stycken som jag behöver hjälp att starta på. 1. För vilka x gäller att: -tan(x) -sqrt(3)/tan(x)=1+sqrt(3) Först ska jag väl få bort nämnaren. Sen då? Jag får ju massa tangens överallt och blir totalförvirrad... 2. Bestäm konstanterna A, B och C så att (2cos(x) - 4sin(x))^2 = Acos(2x) + Bsin(2x) + C gäller för alla x. Konstanterna är heltal. Sen har jag en fråga till er som läst/läser matte på högskolan. Jag ska läsa Civil. Datateknik i höst. Hur mycket trigonometri är det i högskolans matte? Trig. är ju inte min starka sida.
  14. Tjenare! Jag gjorde den uppgiften för ett tag sen Jag kom på att om man kvadratkompliterar x4 + 3x2 + 4 först så blir det lättare. Du kan möjligtvis inte hjälpa mig med Falska rötter uppgiften? //eforum.idg.se/viewmsg.asp?EntriesId=730494 [inlägget ändrat 2005-07-19 14:08:35 av Phalle] [inlägget ändrat 2005-07-19 14:13:56 av Phalle]
×
×
  • Skapa nytt...