NAZI

Kielce, nazaret, kółko inf - zarejstruj/zaloguj się aby mieć dostęp

  • Nie jesteś zalogowany.
  • Polecamy: Gry

#1 2009-10-15 20:55:37

SiwyEd

Administrator

Zarejestrowany: 2009-10-07
Posty: 21
Punktów :   

15.10.2009 - co było

Dzisiaj utrwalaliśmy dalej poznane już rzeczy, zrobiliśmy wstęp do tablic, poznaliśmy słowo kluczowe break oraz napisaliśmy kilka ciekawych programów.

Kod przykładowego programu przedstawiającego korzystanie z tablic.

Kod:

#include <iostream>//dla cin, cout oraz system
#include <string> //dla string

using namespace std;
/*program przykładowy - tablice*/
/*
  za pomocą tablic można tworzyć dowolną ilość zmienych pewnego typu na raz - za chwilę przykład
*/
int main(){
    int tab[1024]; //w ten sposób deklarujemy tablicę na zmienne typu int, ta tablica zawiera dokładnie 1024 liczby całkowite
    //- możemy deklarować tablice dla dowolnego typu
    double tab1[28]; //tablica na 28 liczb rzeczywistych
    string tab2[43]; //tablica na 43 teksty
    //korzystanie z tablic:
    tab[0] = 8; //do zerowego elemntu z tab przypisujemy 8 - 
    //uwaga - elementy w tablicach są indeksowane od 0 do n-1 gdzie n to rozmiar tablicy
    tab[5] = tab[0]*3; //do elementu 5 tab przypisujemy wartość zerowego elementu tablicy pomnożoną razy 3
    tab2[15] = "jakis tam tekst - szczerz mowiac niezbyt to mnie ciekawi";
    tab2[10] = "cos innego"; //i tak dalej
    //często chcemy jakaś operację wykonać dla każdego elementu z tablicy - można to bardzo łatwo zrobić za pomocą pętli for
    for (int i =0; i < 28; ++i) { //28 to romiar tab1
        tab1[i] = 12; //po koleii od tab1[0] do tab1[27], ustawiamy wszystko na 12
        // - przypominam że tablice indeksowane są od 0 do n-1 gdzie n to rozmiar tablicy
    }
    
    //wypisujemy wszystkie elementy tab1
    for (int i=0; i < 28; ++i){
        cout << tab1[i] << " ";
    }
    cout << endl;
    system("pause");
}

Program przykładowy - tablice znaków.

Kod:

#include <iostream>
using namespace std;
/* program przykladowy - tablica znakow*/
int main(){
    char arr[1024]; //char to typ w ktorym trzymamy znaki 
//tablica znakow może byc interpretowana jako tekst - o maksymalnej ilosci znakow 
//równej wielkosci tablicy

//można napisac:
    cin >> arr;
//albo:
    cout << arr;
//każdy tekst kończy się specjalnym niewidzialnym znakiem informującym że to jest koniec tekstu
// znakiem: '\0'

//tak więc jesli w efekcie operacji cin >> arr; zostanie wczytane slowo "kupa"
//to to jest równoważne czemuś takiemu
   arr[0] = 'k';
   arr[1] = 'u';
   arr[2] = 'p';
   arr[3] = 'a';
   arr[4] = '\0';
   
// korzystając ze znaku końca można łatwo policzyć długość wczytywanego tekstu
   cin >> arr;
   int dlugosc = 0;
   while (arr[dlugosc] != '\0')
   {
      ++dlugosc;
   }
   //w tej chwili w zmiennej dlogosc jest zapisana długość wczytanego tekstu
   
   cout << dlugosc << endl;

//UWAGA nie można napisać(w komentarzu aby dalo sie skompilowac):
//arr = "jakis tekst"; //ponieważ "jakis tekst" to takze w rzeczywistosci jest 
//tablica
// w ogólności nie można zrobić czegoś takiego (w komentarzu aby dalo sie skompilować)
/*
  int tablica1[100];
  int tablica2[38];
  tablica1 = tablica2; //błąd!!!
*/
  system("pause");
}

Program przykładowy - wypisywanie ciągu liczb od końca.

Kod:

#include <iostream>//dla cin, cout oraz system

/*program przykładowy wpisywanie ciągu liczb od końca*/
using namespace std;
int main(){
    int tab[1000];
    int n;
    cout << "Podaj ilosc liczba jakie mi za chwile podasz - ilosc ta musi byc mniejsz od 1001." << endl;
    cin >> n;
    cout << "Podaj mi teraz " << n << " liczb:" << endl;
    for (int i =0; i < n; ++i)
    {
        cin >> tab[i];        
    }
    cout << endl << "Teraz wyswietle liczby ktore mi podalas/es od konca:" << endl;
    for (int i = n-1; i >=0; --i)
    {
        cout << tab[i] << " ";
    }
    cout << endl;
    system("pause");
}

Następny program, będzie najpierw pobierał pewną liczbę - liczbę ludzi.
Później będzie wczytywał wagę każdego człowieka.
A później dla każdego człowieka będzie wypisywał czy jest on chudy, gruby czy normalny w zależności od porównania jego wagi ze średnią.

Kod:

#include <iostream>//dla cin, cout oraz system

/*program przykładowy - komentowanie wagi*/
using namespace std;
int main(){
    double wagi[1000]; //tablica na wagi ludzi 
    int n;//ilość ludzi
    cout << "Podaj ilosc ludzi ktorych wagi mam wczytywac - ilosc ma byc mniejsza niz 1001." << endl;
    cin >> n;
    cout << "Podaj mi teraz " << n << " wag" << endl;
    double suma = 0;// w tej zmiennej zapisuję sumę wag wszystkich ludzi
    for (int i =0; i < n; ++i)
    {
        cin >> wagi[i];        
        suma += wagi[i];
    }
    double srednia = suma/n; //liczęśrednią wagę
    cout << endl;
    for (int i =0; i < n ; ++i) //dla każdego człowieka stwierdzamy czy jest jest on chudy czy gruby
    {
        cout << "czlowiek nr: " << i << " jest ";
        if (wagi[i] < srednia)
        {
           cout << "chudy" << endl;
        }
        else if (wagi[i] > srednia)
        {
           cout << "gruby" << endl;
        }
        else 
        {
           cout << "normalny" << endl;
        }
    }
    system("pause");
}

Palindrom to taki ciąg znaków który czytany od końca jest taki sam jakbyśmy czytali go od początku.
Poniższy program będzie sprawdzał czy dany ciąg znaków jest palindromem.

Kod:

#include <iostream>
using namespace std;

int main(){
    char s[1024];
    cin >> s;
    int j = 0;
    while (s[j] != '\0') // '\0' - specjalny znak informujący o końcu słowa
    {
          ++j;
    }
    --j;
    //w tej chwili j jest indeksem ostatniej litery ze słowa
    int i = 0; //i jest indeksem pierwszej litery ze słowa
    bool ok = true;
    while (i < j)
    {
          if (s[i] != s[j])
          {
             ok = false;
             break; 
//instrykcja break przerywa wykonywanie się pętli w której się znajduje
          }
          ++i;
          --j;
    }
    if (ok)
    {
       cout << "Podane slowo jest palindromem." << endl;
    }
    else
    {
        cout << "Podane slowo nie jest palindromem." << endl;
    }
    system("pause");
}

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.aroundtheworld.pun.pl www.hojda-ots.pun.pl www.intelowo.pun.pl www.sf.pun.pl www.adresapokalisy.pun.pl