Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zadanie z tablicami

Ostatnio zmodyfikowano 2014-02-12 10:09
Autor Wiadomość
maniacomLFC
Temat założony przez niniejszego użytkownika
Zadanie z tablicami
» 2014-02-11 20:45:12
Mam kłopot z kilkoma zadaniami, jedno z nich dotyczy tablic. Oto polecenia:

1) napisać program wypełniający tablicę jednowymiarową znakami, a następnie wyświetlający znaki na konsoli w kolejności odwrotnej do wprowadzania; dane wprowadzane z klawiatury;
2) napisać program wypełniający tablicę dwuwymiarową liczbami losowymi rzeczywistymi z przedziału (-5,5);
3) napisać program wyszukujący w wektorze liczb całkowitych nieujemnych element minimalny i maksymalny oraz określający ich indeksy; zadanie zrealizować w jednym przebiegu pętli "for"; wyniki wyświetlić na konsoli; tablicę liczb wylosować;
4) napisać program wyznaczający element maksymalny z elementów leżących na głównej przekątnej;
5) napisać program obliczający sumę elementów tablicy liczb rzeczywistych leżących nad główną przekątną;
6) napisz program porządkujący rosnąco wektor liczb;

Drugie zadanie z tablicami:

1) napisz program porządkujący malejąco wektor liczb, operacje na wektorze wykonaj korzystając ze wskaźników;
2) uporządkuj trójwymiarową tablicę liczb rzeczywistych, porządek dowolny;
3) dokonaj przetworzenia tablicy dwuwymiarowej TAB w następujący sposób:
TAB[j]=max(TAB[i-1][j], TAB[j-1])
zadanie należy wykonać bez korzystania z dodatkowej tablicy.
4) napisz program na losowanie liczb całkowitych bez powtórzeń.
5) dla dwuwymiarowej tablicy liczb określ minimalną liczbę elementów tablicy, których suma jest większa bądź równa zadanej liczbie.
6) napisz program sprawdzający czy w tablicy jednowymiarowej liczb całkowitych znajduje się liczba x.

instrukcja "switch"
7) zmodyfikować program na wyznaczanie pierwiastków równania kwadratowego na program z menu; elementy menu mają zawierać: zerowanie zmiennych, wprowadzanie współczynników, obliczenie wyróżnika, obliczenie pierwiastków, wyświetlenie wyników; w opcjach "obliczenie wyróżnika" i "obliczenie pierwiastków" zakończyć komunikatem "obliczono deltę/pierwiastki";

Z góry dziękuję z pomoc :)
P-104474
dante89
Tablice
» 2014-02-12 09:29:15
1)
C/C++
#include <iostream>

int main()
{
    std::cout << "Podaj rozmiar tablicy:";
    int rozmiar;
    std::cin >> rozmiar;
    char tablica[ rozmiar ];
    std::cout << "\nPodaj elementy tablicy\n";
   
    for( int i = 0; i < rozmiar; i++ )
    {
        std::cout << "Podaj " << i << " element tablicy:";
        std::cin >> tablica[ i ];
    }
   
    std::cout << "Wyswietlenie tablicy w odwrotnej kolejnosci";
   
    for( int i = rozmiar; i >= 0; i-- )
    {
        std::cout << tablica[ i ];
    }
}

2)
C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <iomanip>

int main()
{
    //rozmiar tablicy
    const int kolumna = 5;
    const int wiersz = 5;
   
    int liczba;
   
    /*std::cout<<"Podaj liczbe wierszy:"; //tutaj można samemu podać wartości
      std::cin>>wiersz;
      std::cout<<"Podaj liczbe kolumn:";
      std::cin>>kolumna;*/
   
    int tablica[ wiersz ][ kolumna ];
    srand( time( NULL ) ); //funkcja powoduje losowanie liczb(tak jakby wymieszanie), bez tego przy użyciu samego rand() będzie ciągle ta sama liczba
   
    for( int i = 0; i < wiersz; i++ )
    {
        for( int j = 0; j < kolumna; j++ )
        {
            liczba =( rand() %( 5 -( - 5 ) ) - 5 ); //wyznaczenie liczby z podanego zakresu
            tablica[ i ][ j ] = liczba;
            std::cout << std::setw( 4 ) << tablica[ i ][ j ]; //setw() użyte w celach estetycznych aby macierz ładnie wyglądała
        } //for j
       
        std::cout << "\n";
    } //for i
}
P-104491
alixir
» 2014-02-12 10:00:30
C/C++
/*std::cout<<"Podaj liczbe wierszy:"; //tutaj można samemu podać wartości
       std::cin>>wiersz;
       std::cout<<"Podaj liczbe kolumn:";
       std::cin>>kolumna;*/

To jest błędny kod. Rozmiar tablicy musi być znany podczas kompilacji i takie zachowanie jest niepoprawne.
Na szczęście w tym przypadku jest zakomentowane, ale mimo wszystko zwracam na to uwagę.
P-104493
dante89
Tablice
» 2014-02-12 10:09:10
Racja, kompletnie o tym zapomniałem. Dzięki za uwagę. Przypomniało mi się, że można tak zrobić za pomocą dynamicznej alokacji tablicy.
C/C++
std::cout << "Podaj rozmiar tablicy:";
int rozm;
std::cin >> rozm;

int * tabptr = new int[ rozm ];

//wpisywanie wartosci do tablicy
* tabptr = 44;
tabptr[ 0 ] = 44;
P-104494
« 1 »
  Strona 1 z 1