Zadania w załączniku, ja wiem one nie sa skomplikowane, ale jutro mam z tego zaliczenie i nic nie kumam. Prosze pomóżcie!
nic nie kumam
Ale w sensie, że jak? Nie kumasz jak działają tablice, czy jak działają te wielowymiarowe?
Mały tip:
Zwykła tablica:
tab = {1,2,3,4,5,6}
dostęp do elementu - 1 to tab[0], 2 to tab[1] itd.
tablica wielowymiarowa to inaczej tablica tablic, np:
tab2 = {{1,2,3}, {4,5,6}}
Dostęp do elementu uzyskuje się za pomocą podwójnego indeksu - tablica[rząd][kolumna]
W powyższym przykładzie 1 to tab2[0][0], 6 to tab[1][2]
Zatem jeśli w zadaniu jest suma liczb na głównej przekątnej w tablicy 3x3, to dodajesz liczby o indeksach [0][0], [1][1] i [2][2].
No ok, tylko jak zapisac w programie? A mógłbyś mi to zaimplementować w zadaniu w sensie stworzyc ten program? Prosze, bo jutro kilka tych zadan moze sie pojawić na teście
Tego typu program (sumowanie elementów tablicy) powinieneś być w stanie stworzyć sam, trzymając się pewnych wytycznych:
0. Nie wiadomo, czy tablica będzie dana, czy trzeba ją stworzyć. Ani czy można tę operację można przeprowadzić w main(), czy trzeba wydzielić do osobnej funkcji. Więc tym się na razie nie zajmujemy.
- Tworzysz zmienną pod którą przechowasz sumę i ustawiasz ją początkowo na 0
suma = 0
- Przy pomocy pętli for (skoro rozmiar tablicy jest znany) iterujesz po tablicy i dodajesz stosowne elementy do sumy
for (indeks = 0; indeks < ilość_kolumn; ++indeks [czyli indeks = indeks+1]) {
suma += tablica[indeks][indeks]
}
Elementy na głównej przekątnej w tablicach NxN mają to do siebie, że indeksy rzędów i kolumn są sobie równe, zatem wystarczy jedna pętla. W innym przypadku potrzebne byłyby dwie - jedna dla rzędów, druga, zagnieżdżona w pierwszej, dla kolumn.
- Wypisujesz wynik dodawania
#include <stdio.h>
#include <iostream>
#define c char
#define s __int32
#define x __int8
#define u unsigned
#define e 8
#define o 1
#define f 5
int main()
{
u x _[e];
c *__ = "w taki sposub nie zdasz studjuw muj drogi";
s _____ = e;
for(s ___=e-0;___>=NULL;___--)
{
_[___] = (x)__[___];
_____ += (x)__[___];
}
_____ /= e;
if(_____ > f)
std::cout << "\x77\x69\x65\x6e\x6B\x73\x7A\x79\x20\x6F\x64\x20";
else if(_____ < f)
std::cout << "\x6\x6E\x69\x65\x6A\x73\x7A\x79\x20\x6F\x64\x20";
else
std::cout << "\x72\x75\x77\x6E\x79";
std::cout << "\x35";
return 0;
}
zadanie pierwsze jurz z glowy mam nadzieje rze pomoglem pozdrawiam
edit: oj przepraszam umknelo mi 'od' w mniejszym!!
Daj znać jaka była reakcja jak oddałeś zadanie zrobione przez @MexikanoS
@Adamoo01:
Trochę nie chciało mi się robić, ale trzymaj:
https://ideone.com/gfVobe
bez zad. 4 i 7
Zadanie 7 - to tylko jedna linijka kodu:
for( const auto& row : vector<vector<int>>({ {4,6,-2}, {-4,17,-2}, {9,-44,2} }) ) cout << accumulate( row.cbegin() , row.cend() , 0 ) << "\n";
Uśmiałem się setnie :) Chyba jeszcze nigdy nie śmiałem się z wyłącznie kodu.
Taka pomoc nie budzi mojego sprzeciwu etycznego. Cóż, Kolega Pytający długo chorował, więc różne pozytywne i negatywne rzeczy mogły się w stać.
ZADANIE 1
#include <iostream>
using namespace std;
void suma_srednia(int tab[])
{
double suma=0;
double srednia;
for (int i=0; i<8; i++)
suma=suma+tab[i];
srednia=suma/8;
cout<<"\nSrednia wynosi: "<<srednia;
if (srednia<5)
cout<<"\n\nSrednia jest mniejsza od 5.\n";
if (srednia==5)
cout<<"\n\nSrednia jest rowna 5.\n";
if (srednia>5)
cout<<"\n\nSrednia jest wieksza od 5.\n";
}
int main()
{
int tablica[8]={1,2,3,4,5,6,7,8};
for (int i=0;i<8;i++)
{
cout<<tablica[i]<<" ";
}
cout<<endl;
suma_srednia(tablica);
}
W sumie to miałem wolny kwadrans i pochyliłem się nad tymi zadaniami.
#include <iostream>
#include <time.h>
// Napisz program obliczający i wyświetlający średnią arytmetyczną wartości 8-elemtnowej tablicy.
// Następnie sprawdź, czy wynik jest liczbą większą, mniejszą czy równą 5 i wypisz odpowiedni komunikat.
void zad1()
{
#define ILOSC_ELEMENTOW 8
int tablica[ILOSC_ELEMENTOW] = { 1, 2, 3, 4, 5, 6, 7, 8 };
int suma = 0;
for(int i=0;i<ILOSC_ELEMENTOW;i++)
suma += tablica[i];
int srednia = suma / ILOSC_ELEMENTOW;
std::cout << "Srednia arytmetyczna dla elementow tablicy wynosi: " << srednia << "." << std::endl;
}
// Napisz program, który wylosuje liczby z zakresu od 1 do 500,
// wstawi je do 10-elementowej tablicy, a następnie wyświetli wartości, które są jednocześnie parzyste i podzielne przez 3.
void zad2()
{
#define ILOSC_ELEMENTOW 10
#define ZAKRES_MIN 1
#define ZAKRES_MAX 500
srand(time(NULL));
int tablica[ILOSC_ELEMENTOW];
std::cout << "Losowe liczby z zakresu od " << ZAKRES_MIN << " - " << ZAKRES_MAX << ", ktore sa parzyste i podzielne przez 3:";
for(int i=0;i<ILOSC_ELEMENTOW;i++)
{
tablica[i] = rand() % (ZAKRES_MAX - ZAKRES_MIN) + ZAKRES_MIN;
if(tablica[i] % 2 == 0 && tablica[i] % 3 == 0)
std::cout << " " << tablica[i];
}
std::cout << "." << std::endl;
}
// Napisz program, który do 20 elementowej tablicy wczyta wylosowane liczby z zakresu od 10 do 50,
// a następnie wypisze wartość najmniejszą i wartość największą.
void zad3()
{
#define ILOSC_ELEMENTOW 20
#define ZAKRES_MIN 10
#define ZAKRES_MAX 50
srand(time(NULL));
int tablica[ILOSC_ELEMENTOW];
int wartosc_najwieksza = -2147483648, wartosc_najmniejsza = 2147483647;
for(int i=0;i<ILOSC_ELEMENTOW;i++)
{
tablica[i] = rand() % (ZAKRES_MAX - ZAKRES_MIN) + ZAKRES_MIN;
if(wartosc_najwieksza < tablica[i])
wartosc_najwieksza = tablica[i];
if(wartosc_najmniejsza > tablica[i])
wartosc_najmniejsza = tablica[i];
}
std::cout << "Najwieksza wartosc w tablicy z zakresu " << ZAKRES_MIN << " - " << ZAKRES_MAX << " to: " << wartosc_najwieksza << ", a najmniejsza to: " << wartosc_najmniejsza << "." << std::endl;
}
// Napisz program, który posortuje rosnąco elementy 10-elementowej tablicy.
// Wartości elementów zostaną wczytane z klawiatury.
void zad4()
{
#define ILOSC_ELEMENTOW 10
int tablica[ILOSC_ELEMENTOW];
for(int i=0;i<ILOSC_ELEMENTOW;i++)
{
std::cout << "Podaj wartosc dla " << i + 1 << " liczby: ";
std::cin >> tablica[i];
}
// https://www.programmingsimplified.com/c/source-code/c-program-bubble-sort
int swap = 0;
for(int i=0;i<ILOSC_ELEMENTOW-1;i++)
{
for(int x=0;x<ILOSC_ELEMENTOW-i-1;x++)
{
if(tablica[x] > tablica[x + 1])
{
swap = tablica[x];
tablica[x] = tablica[x + 1];
tablica[x + 1] = swap;
}
}
}
std::cout << "Posortowana tablica:";
for(int i=0;i<ILOSC_ELEMENTOW;i++)
std::cout << " " << tablica[i];
std::cout << "." << std::endl;
}
// Napisz program, który wyszuka i wyświetli na ekranie maksymalny element tablicy o wymiarze 3 x 3.
void zad5()
{
int tablica[3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
int najwiekszy_element = -2147483648;
for(int i=0;i<3;i++)
for(int x=0;x<3;x++)
if(tablica[i][x] > najwiekszy_element)
najwiekszy_element = tablica[i][x];
std::cout << "Najwiekszy element w tablicy to: " << najwiekszy_element << "." << std::endl;
}
// Napisz program, który obliczy i wyświetli na ekranie sumę elementów na głównej przekątnej tablicy o wymiarach 3 x 3.
void zad6()
{
int tablica[3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
int suma_elementow_przekatnej = 0;
for(int i=0;i<3;i++)
suma_elementow_przekatnej += tablica[i][i];
std::cout << "Suma elementow przekatnej wynosi: " << suma_elementow_przekatnej << "." << std::endl;
}
// Napisz program obliczający sumę elementów w wierszach tablicy dwuwymiarowej o trzech wierszach i trzech kolumnach.
void zad7()
{
int tablica[3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
int suma_elementow = 0;
for(int i=0;i<3;i++)
for(int x=0;x<3;x++)
suma_elementow += tablica[i][i];
std::cout << "Suma elementow w tablicy wynosi: " << suma_elementow << "." << std::endl;
}
int main()
{
zad1();
zad2();
zad3();
zad4();
zad5();
zad6();
zad7();
return 666;
}
Może przyda się komuś kiedyś z potomnych. To też poustawiałem define'y dla łatwiejszego zrzynania kodu.