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

[C++] Funkcja której nie rozumiem

Ostatnio zmodyfikowano 2016-01-03 12:57
Autor Wiadomość
dovah993
Temat założony przez niniejszego użytkownika
[C++] Funkcja której nie rozumiem
» 2015-12-29 15:15:25
Witam.
Mam do napisania funkcję której nie rozumiem (pogrubiam moment w którym polecenie staje się dla mnie niezrozumiałe).
Mianowicie:
Napisz funkcję clamp przyjmującą trzy argumenty, wartość minimalną a, maksymalną c oraz liczbę b,
zwracającą:

                                  a ,b<a
clamp(a , b ,c)={  c , b>c
                                  b, a≤b≤c

P-142543
mateczek
» 2015-12-29 15:50:06
masz przedział danych gdzie "A" i "C"  to jego granice :P (Autor nie napisał że C>A musi być zawsze ale pewnie taki miał plan :P)

A.......b..........C   teraz ma zwrócić b

A.......C..........b   teraz ma zwrócić c

b.......A..........C   teraz m zwrócić a

Innymi słowy zwróć element w środku :P
P-142544
dovah993
Temat założony przez niniejszego użytkownika
» 2016-01-02 11:09:52
Czyli funkcja ma zwracać wartość double lub int wartość środkową?

Następne polecenie brzmi tak: Napisz funkcję clamp która zamiast na jednej liczbie, operuje na tablicy w stylu C (modyfikuje każdy jej element)

Idąc tym tropem co napisałeś wyżej clamp zwraca jeden element, a tu ma być chyba tablica, sam nie wiem.

W ogóle czym jest tablica w stylu c?
P-142683
dovah993
Temat założony przez niniejszego użytkownika
» 2016-01-03 09:32:19
Prosiłbym o pomoc, gdyż przez brak zrozumienia polecenia nie jestem w stanie ruszyć z programem.
P-142756
mateczek
» 2016-01-03 10:17:06
tablica w stylu C to normalna tablica !!!

int a[12];
lub dynamicznie alokowana
int*a =new int[12];

A o to co ma być w tej tablicy to najlepiej się zapytaj autora zadania !!! czy w tablicach mają być również granice przedziału czy tylko liczba b??
C/C++
#include <iostream>
#include<string>
using namespace std;
void clamp( int a, int c, int * b, int rozmiarTab ) {
    for( int i = 0; i < rozmiarTab; i++ ) {
        if( b[ i ] < a ) b[ i ] = a;
        else if( b[ i ] > c ) b[ i ] = c;
       
    }
   
}
int main()
{
    int limitDolny = 1;
    int limitGorny = 10;
    int tablicaB[ 10 ] = { 1, 10, 12, 5, 3, 0, 15, 2, 1, 12 };
    clamp( limitDolny, limitGorny, tablicaB, 10 );
    for( int i = 0; i < 10; i++ ) {
        cout << tablicaB[ i ] << endl;
    }
}
P-142757
carlosmay
» 2016-01-03 12:18:04
lub dynamicznie alokowana
 
C/C++
int * p =( int * ) malloc( rozmiar * sizeof( int ) );
// .....
free( p );
P-142760
dovah993
Temat założony przez niniejszego użytkownika
» 2016-01-03 12:57:40
Dzięki wielkie, udało mi się osiągnąć to co potrzebowałem.
P-142765
« 1 »
  Strona 1 z 1