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

[Rozdział 21] Zadanie 1

Ostatnio zmodyfikowano 2015-11-17 00:11
Autor Wiadomość
carlosmay
» 2015-11-16 22:42:24
Skupiłem się na innym aspekcie, a tego to nie widziałem.
C/C++
do
{
    if( ile == liczba ) // co to tutaj porownujesz???
         return true;
   
    i++;
   
} while( i < ile );

 
P-140247
Szymislaw
Temat założony przez niniejszego użytkownika
» 2015-11-16 22:58:36
C/C++
do
{
    if( t[ i ] == liczba )
         return true;
   
    i++;
   
} while( i < ile );


@carlosmay
Program działa i co najważniejsze wszystko rozumiem. Dziękuję bardzo za pomoc i cierpliwość :).
@Gibas11
Chętnie zobaczę Twoje rozwiązanie.
P-140253
Gibas11
» 2015-11-16 23:06:48
Proszę bardzo:
C/C++
#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{
    srand( time( NULL ) );
   
    int wyl[ 2 ] = { - 1, - 1 }; //tablica wylosowanych indeksów
    int tab[ 3 ]; //tablica na liczby od użytkownika
   
    for( int i = 0; i < 3; i++ )
         cin >> tab[ i ];
   
    for( int i = 0; i < 2; i++ )
    {
        int r;
        do { r = rand() % 3; } while( r == wyl[ 0 ] or r == wyl[ 1 ] ); //losowanie indeksu dopóki będzie on równy jednemu z uprzednio wylosowanych.
       
        wyl[ i ] = r;
    }
   
    cout << tab[ wyl[ 0 ] ] << ", " << tab[ wyl[ 1 ] ];
   
    return 0;
}
P-140254
carlosmay
» 2015-11-16 23:35:17
Postaraj się napisać ten program w oparciu o funkcje.
 Treść zadania sugeruje pisać w oparciu o funkcje. Poza tym
  Zmodyfikuj program z pierwszego zadania tak, aby użytkownik musiał podać 10 liczb, a 8 z nich będzie losowanych bez powtórzeń.
 
C/C++
while( r == wyl[ 0 ] or r == wyl[ 1 ] ); // warunek mocno się wydluzy

 @Gibas11 można też napisać kod w oparciu o STL i wtedy będzie to kilka linijek.
Kod nie musi być super krótki, tylko wielorazowego użytku.
Jak rozmiary tablic poda jako zmienne stałe to otrzyma kod, w którym wystarczy zmienić wielkość tych dwóch
zmiennych i ma drugie rozwiązanie.

np.
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int losuj( int n ) { return rand() % n; }

void wypelnij( int t[], int n ) {
    cout << "Podaj " << n << " liczb(y):\n ";
    for( int i = 0; i < n; i++ ) {
        cin >> t[ i ];
    }
}

bool czyByla( int t[], int iLiczba, int n ) {
    if( n == 0 ) return true;
   
    for( int i = 0; i < n; i++ )
    if( t[ i ] == iLiczba )
         return false;
   
    return true;
}

int main()
{
    srand( time( 0 ) );
    const int SIZE1 = 3, SIZE2 = 2;
    int tab1[ SIZE1 ], tab2[ SIZE2 ];
    wypelnij( tab1, SIZE1 );
    int i = 0;
   
    while( i < SIZE2 ) {
        int los = losuj( SIZE2 );
        if( czyByla( tab2, los, SIZE2 ) )
             tab2[ i++ ] = los;
       
    }
   
    for( i = 0; i < SIZE2; i++ )
         cout << tab1[ tab2[ i ] ] << endl;
   
    return 0;
}
P-140259
Gibas11
» 2015-11-16 23:47:12
O, wybacz, skupiłem się tylko na realizacji "wylosuj 2 z 3 bez powtórzeń", więc po stl'a i funkcję nawet nie sięgałem. Chociaż na upartego funkcję są:
cin.operator <<(...)
 i
main()
, to już liczba mnoga. ^^
P-140260
carlosmay
» 2015-11-17 00:11:31
O, wybacz, skupiłem się tylko na realizacji "wylosuj 2 z 3 bez powtórzeń", więc po stl'a i funkcję nawet nie sięgałem.
 @Gibas11, to nie był przytyk.
Podejrzewam, że władasz większą wiedzą w programowaniu ode mnie, więc nie mam zamiaru Cię 'ustawiać'.
P-140262
1 « 2 »
Poprzednia strona Strona 2 z 2