Site hosted by Angelfire.com: Build your free website today!
C-kielen tehtäviä

Tehtävä 1
Tehtävä 2
Tehtävä 3

Tehtävä 1
#include <stdio.h> #include <conio.h> int arvo (int luku); void muuttuja(int *luku); void jokeri(int luku, int pot, int *summa); void main (void) { int toiminto,luku,summa=0,pot; printf ("Anna toiminto\n1 = arvoparametri, 2 = muuttujaparametri, 3 = jokeri\n"); scanf ("%d", &toiminto); switch (toiminto) { case 1: printf ("Anna luku: "); scanf ("%d", &luku); summa = arvo(luku); break; case 2: printf ("Anna luku: "); scanf ("%d", &luku); muuttuja(&luku); summa = luku; break; case 3: printf ("Anna luku: "); scanf ("%d", &luku); printf ("Anna potenssi: "); scanf ("%d", &pot); jokeri(luku, pot, &summa); break; default: printf("Annoit vaaran toiminnon!\n\n"); } printf ("Tulos on %d\n", summa); getch(); } int arvo(int luku) { return luku * luku; } void muuttuja(int *luku) { *luku = *luku * *luku; } void jokeri(int luku, int pot, int *summa) { int i; if (pot != 0) { for (i=1;i<pot;i++) { if (*summa == 0) *summa = luku * luku; else *summa = *summa * luku; } } else *summa = 1; }
Tehtävä 2
#include <stdio.h> #include <conio.h> #include <string.h> #define TAULUKON_KOKO 20 void tayta_taulukko(void); void tulosta_taulukko(void); void hae_arvo(void); void menu(void); char uusiksi(void); int taulukko[TAULUKON_KOKO]; void main (void) { int toiminto,lopetus=1; do { clrscr(); menu(); scanf ("%d", &toiminto); switch (toiminto) { case 1: tayta_taulukko(); break; case 2: hae_arvo(); break; case 3: tulosta_taulukko(); break; case 4: lopetus = 0; break; default: printf("Annoit vaaran toiminnon!\n"); } toiminto = 0; } while (lopetus == 1); } void tayta_taulukko(void) { int paikka,luku; char vastaus; do { clrscr(); printf (".: SYOTTO :.\n\n"); printf ("Anna indeksi: "); scanf ("%d",&paikka); if (paikka >= 0 && paikka < TAULUKON_KOKO) { printf ("Anna luku: "); scanf ("%d",&luku); taulukko[paikka] = luku; } else { printf("Annoit indeksin jota ei ole. Viimeinen indeksi on %d.\n", TAULUKON_KOKO - 1); } vastaus = uusiksi(); } while (vastaus == 'e'); } void tulosta_taulukko(void) { int i,j,arvo=0,positio=0,apu[TAULUKON_KOKO] = {0},sort[TAULUKON_KOKO] = {0}; char vastaus; // JOKERI ALKAA for (i = 0; i < TAULUKON_KOKO; i++) apu[i] = taulukko[i]; for (j = 0; j < TAULUKON_KOKO; j++) { for (i = 0; i < TAULUKON_KOKO; i++) { if (arvo < apu[i]) { arvo = apu[i]; positio = i; } } apu[positio] = 0; sort[j] = arvo; arvo = 0; } // JOKERI LOPPUU do { clrscr(); printf (".: TULOSTUS :.\n\n"); for (i = 0; i < TAULUKON_KOKO; i++) printf ("Sija %d on %d\n",i+1,sort[i]); vastaus = uusiksi(); } while (vastaus == 'e'); } void hae_arvo(void) { int i,arvo,osuma=0; char vastaus; do { clrscr(); printf (".: HAKU :.\n\n"); printf ("Anna haettava arvo: "); scanf ("%d",&arvo); for (i = 0; i < TAULUKON_KOKO; i++) { if (arvo == taulukko[i]) { printf ("Indeksi %d = %d\n",i,taulukko[i]); osuma = 1; } } if (osuma == 0) printf ("Antamaasi arvoa ei ole taulukossa.\n"); vastaus = uusiksi(); osuma = 0; } while (vastaus == 'e'); } void menu(void) { printf (".: MENU :.\n\n1 = Syota\n2 = Hae\n3 = Tulosta\n4 = Lopeta\n\nAnna toiminto: "); } char uusiksi(void) { char vastaus; printf("\nJatketaanko valikkoon? (k tai e)\n"); vastaus = getche(); if (vastaus != 'k' && vastaus != 'e') { do { clrscr(); printf("Annoit vaaran komennon.\n"); printf("Jatketaanko valikkoon? (k tai e)\n"); vastaus = getche(); } while (vastaus != 'k' && vastaus != 'e'); } return vastaus; }
Tehtävä 3
#include <stdio.h> #include <conio.h> char uusiksi(void); struct tili { char tilinimi[30]; char tyyppi; int tilinumero; float alkusaldo; float saldo; }; struct tapahtuma { char paiva[10]; int tilinumero; float summa; }; void main (void) { int check; struct tili account; struct tapahtuma action; char vastaus, empty[1] = {0}; do { clrscr(); fflush ( stdin ); printf ("Anna nimi: "); gets(account.tilinimi); printf ("Anna tilin tyyppi (kredit tai debet): "); gets(account.tyyppi); printf ("Anna tilinumero: "); scanf ("%d",&account.tilinumero); printf ("Anna alkusaldo: "); scanf ("%f",&account.alkusaldo); account.saldo = account.alkusaldo; action.tilinumero = account.tilinumero; clrscr(); fflush ( stdin ); printf ("Anna paiva: "); gets(action.paiva); printf ("Anna summa: "); scanf ("%f",&action.summa); account.saldo = account.saldo + action.summa; clrscr(); printf (".: TILITIEDOT :.\n\n"); printf ("Nimi %s, jonka numero on %d.\n", account.tilinimi, account.tilinumero); printf ("Tili on %s-saldoinen.\n", account.tyyppi); printf ("Saldo on %.2f ja alkusaldo oli %.2f\n", account.saldo, account.alkusaldo); printf ("Tapahtuman %.2f kirjauspaiva oli %s\n", action.summa, action.paiva); vastaus = uusiksi(); } while (vastaus == 'k'); } char uusiksi(void) { char vastaus; printf("\nJatketaanko? (k tai e)\n"); vastaus = getche(); if (vastaus != 'k' && vastaus != 'e') { do { clrscr(); printf("Annoit vaaran komennon.\n"); printf("Jatketaanko? (k tai e)\n"); vastaus = getche(); } while (vastaus != 'k' && vastaus != 'e'); } return vastaus; }
Tehtävä 4

Tehtävä 5

Tehtävä 6

Tehtävä 7

Tehtävä 8

Tehtävä 9

Tehtävä 10