• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pomoc przy dokończeniu 2 zadań z funkcji

Object Storage Arubacloud
0 głosów
172 wizyt
pytanie zadane 14 grudnia 2016 w C i C++ przez Programator Nowicjusz (160 p.)

Mam problem z jeszcze 2 zadaniami (rozwiązane są tak do połowy, później nie wiem jak zacząć), więc też prosiłbym o pomoc

1. Napisz program wypełniający globalną tablicę o rozmiarze 5x5 kolejnymi liczbami rzeczywistymi: 1.0,1.0+k,1.0+2k, …, gdzie k jest krokiem zadanym przez użytkownika z klawiatury. Następnie:
a) Napisz funkcję wyświetlającą wybraną kolumnę tablicy. W razie niesprecyzowania numeru kolumny, funkcja powinna wyświetlić ostatnią kolumnę.
b) Napisz funkcje, która zwracać będzie do programu głównego średnią arytmetyczną wyrazów w wybranym wierszu.

Pierwszą część zadania zrobiłem, ale z podpunktami mam problem

#include<iostream>
#include<cmath>

using namespace std;

void wyswietl_wiersz(int);
int  najwieksza(int w = 0);
void najwieksza(const int,int &,int &);
const int n = 5;
double tab[n][n];

int main(void)
{
    double w, k, poczatek;
    poczatek = 0;
    int i, j;
    cout << "podaj k: ";
    cin >> k;
    for (i=0; i<n; i++)
    {
            for(j=0; j<n; j++)
            {
            w = 1 + poczatek;
            tab[i][j] = w;
            cout << tab[i][j] << "\t";

            k=k++;
            poczatek+=k;
            }
            cout << endl;
    }

return 0;
}

 

2. Napisz program wypełniający globalną tablicę o rozmiarze 7x7 liczbami losowymi z przedziału [-500,1000]. Następnie dopisz zestaw dwóch funkcji o identycznej nazwie, z których:
-pierwsza powinna przyjmować współrzędne wybranego elementu tablicy oraz wartość rzeczy-wistą. Podana wartość rzeczywista powinna być podstawiona w miejsce, w tablicy wskazane współrzędnymi, a poprzednia wartość tego elementu tablicy powinna być zwrócona do programu głównego przez wartość (przez return).
-druga powinna przyjmować wartość całkowitą, dla której funkcja powinna znaleźć najbliższy pod względem wartości element tablicy i zwrócić go do programu głównego wraz z jego współrzędnymi (zwróć uwagę, że przez return można zwrócić tylko 1 wartość).

#include <iostream>
#include <ctime>
#include <cstdlib> //srand

using namespace std;

const int n = 7; //liczba elementow tablicy musi byc stala, wiec const
int tablica[n][n];

int main()
{
    srand(time(NULL)); //punkt startowy generatora pseudolosowego

    for(int i=1; i<=n; i++) //robienie 1 wymiaru tablicy
    {
        for(int j=1; j<=n; j++) //robienie 2 wymiaru tablicy
        {
            tablica[i][j] = ((rand()%1501))-500;     //zwracanie pseudolosowej liczby calkowitej. calkowity przedzial liczb: 1501. Pierwsza losowana liczba: -500
        }
    }

    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=n; j++)
        {
            cout << tablica[i][j] << "\t"; //wyswietlamy tablice, ktore zapisalismy wyzej
        }
         cout << endl;
    }
}

Również nie wiem jak ruszyć podpunkty

1 odpowiedź

+1 głos
odpowiedź 14 grudnia 2016 przez degrek Bywalec (2,380 p.)

Jeśli coś nie jasne to zawsze możesz dopytać.

zad1:

#include <iostream>
#define N 5
using namespace std;

double tab[N][N];
void wyswietl_kolumne(int nr_kolumny);
double zwroc_srednia(int wiersz);                   // w tresci zadania jest podane ze ma zwracac 
                                                    // wartosc wiec zmienilem typ na double
int main(void)
{
    double k,srednia = 0;
    int licznik = 0;

    cout << "Podaj krok : ";
    cin >> k;
    // petla inicjalizujaca
    for(int i = 0; i < N ; i++){
        for(int j = 0; j < N; j++){
            tab[i][j] = 1.0 + licznik*k;
            licznik ++;
            cout << tab[i][j] << "\t";
        }
        cout << endl;
    }

    //wywolanie pierwszej metody
    cout << "Ktora kolumne wyswietlic? ";
    cin >> licznik;                                  //uzywam zmiennej 'licznik' bo stoi nieuzywana
    wyswietl_kolumne(licznik);

    //wywolanie drugiej metody
    cout << "Z ktorego wiersza obliczyc srednia? ";
    cin >> licznik;
    srednia = zwroc_srednia(licznik);
    cout << srednia << endl;
}

void wyswietl_kolumne(int nr_kolumny){
    if(nr_kolumny >= 0 && nr_kolumny < N){          //zabezpieczenie przed podaniem wartosci spoza zakresu
        for(int i =0; i < N; i++){
            cout << tab[i][nr_kolumny] << endl;
        }
    }
    else
        for(int i =0; i < N; i++){
            cout << tab[i][N-1] << endl;
        }
}

double zwroc_srednia(int wiersz){
    double srednia = 0;
    if(wiersz >= 0 && wiersz < N){                  //to samo co wyzej choc nie nakazane w tresci zadania
        for(int i = 0; i < N; i++){
            srednia += tab[wiersz][i];
        }
        return srednia/N;
    }
    else{
        for(int i = 0; i < N; i++){
            srednia += tab[N-1][i];
        }
        return srednia/N;
    }
}

Podobne pytania

0 głosów
1 odpowiedź 516 wizyt
pytanie zadane 6 kwietnia 2022 w Egzaminy zawodowe przez mati121212 Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 417 wizyt
pytanie zadane 10 listopada 2019 w Rozwój zawodowy, nauka, praca przez Wisien Nowicjusz (200 p.)
+5 głosów
4 odpowiedzi 1,896 wizyt
pytanie zadane 7 lipca 2015 w JavaScript przez Bartos Użytkownik (610 p.)

92,556 zapytań

141,404 odpowiedzi

319,561 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...