Premium Partner

2016-Programmieren in C/ C++

PfN mit mathem. Anwendung

PfN mit mathem. Anwendung


Kartei Details

Karten 21
Sprache Deutsch
Kategorie Informatik
Stufe Universität
Erstellt / Aktualisiert 09.04.2015 / 09.06.2023
Lizenzierung Keine Angabe
Weblink
https://card2brain.ch/box/z4_mappe
Einbinden
<iframe src="https://card2brain.ch/box/z4_mappe/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Was fehlt?

______ small_to_large(const void * first, const void * second)
{
    assert(first != NULL);
    assert(second != NULL);
    
    IntUlongPair *a = (IntUlongPair *) first;
    IntUlongPair *b = (IntUlongPair *) second;
    
    if(a->first > b->first)
    {
        return 1;
    }
    else if(a->first < b->first)
    {
        return -1;
    }
    else
    {
        if(a->second < b->second)
        {
            return 1;
        }
        else
        {
            return -1;
        }
    }
}

void sort_int_ulong_pairs(IntUlongPair *tab, unsigned long len)
{
    assert(tab != NULL);
    
    qsort((void *) tab, len, sizeof(*tab), &small_to_large);
}

int

Was ist richtig?

C++

Wie kann man auf alle Elemente eines Containers zugreifen?

Per Direktzugriff über eckige Klammern kann auf die Elem. zugegriffen werden.

Für den Zugriff auf die Elem. der Container verwendet die STL sog. Iteratoren.
- sind Zeigern ähnlich, aber an ihren Container angepasst
- bilden Glied zwischen Container und Anwendung

Zugriff über die Elementfunktion at() wird geprüft und löst bei Fehlern eine Ausnahme out_of_range aus.

[ ]-Zugriff ist schneller, als at()

Nennen Sie die zwei Präprozessor-Variablen, die für den Dateinamen und für die Zeile in der Datei stehen?

Zwei vordefinierte Makros sind __FILE__ (aktueller Dateiname) und __LINE__ (aktuelle Zeile innerhalb der Datei)

Was wird  'asserted'?

int small_to_large(const void * first, const void * second)
{
    assert(_______);
    assert(_______);
    
    IntUlongPair *a = (IntUlongPair *) first;
    IntUlongPair *b = (IntUlongPair *) second;
    
    if(a->first > b->first)
    {
        return 1;
    }
    else if(a->first < b->first)
    {
        return -1;
    }
    else
    {
        if(a->second < b->second)
        {
            return 1;
        }
        else
        {
            return -1;
        }
    }
}

void sort_int_ulong_pairs(IntUlongPair *tab, unsigned long len)
{
    assert(tab != NULL);
    
    qsort((void *) tab, len, sizeof(*tab), &small_to_large);
}

Was fehlt?

int small_to_large(const void * first, const void * second)
{
    assert(first != NULL);
    assert(second != NULL);
    
    _______*a = (_______*) first;
    _______*b = (_______*) second;
    
    if(a->first > b->first)
    {
        return 1;
    }
    else if(a->first < b->first)
    {
        return -1;
    }
    else
    {
        if(a->second < b->second)
        {
            return 1;
        }
        else
        {
            return -1;
        }
    }
}

void sort_int_ulong_pairs(IntUlongPair *tab, unsigned long len)
{
    assert(tab != NULL);
    
    qsort((void *) tab, len, sizeof(*tab), &small_to_large);
}

IntUlongPair

Was ist richtig?

int small_to_large(const void * first, const void * second)
{
    assert(first != NULL);
    assert(second != NULL);
    
    IntUlongPair *a = (IntUlongPair *) first;
    IntUlongPair *b = (IntUlongPair *) second;
    
    if(a->first > b->first)
    {
        return __;
    }
    else if(a->first < b->first)
    {
        return __;
    }
    else
    {
        if(a->second < b->second)
        {
            return __;
        }
        else
        {
            return -1;
        }
    }
}

void sort_int_ulong_pairs(IntUlongPair *tab, unsigned long len)
{
    assert(tab != NULL);
    
    qsort((void *) tab, len, sizeof(*tab), &small_to_large);
}

Was fehlt?

int small_to_large(const void * first, const void * second)
{
    assert(first != NULL);
    assert(second != NULL);
    
    IntUlongPair *a = (IntUlongPair *) first;
    IntUlongPair *b = (IntUlongPair *) second;
    
    if(a->first > b->first)
    {
        return 1;
    }
    else if(a->first < b->first)
    {
        return -1;
    }
    else
    {
        if(a->second < b->second)
        {
            return 1;
        }
        else
        {
            return -1;
        }
    }
}

void sort_int_ulong_pairs(IntUlongPair *tab, unsigned long len)
{
    assert(tab != NULL);
    
    qsort((void *) tab, len, sizeof(*tab), _________);
}

Der Funktionszeiger '&small_to_large'