Forum poświęcone studentom I roku Mechatroniki
Administrator
witam
te zadania miala jakas grupa laboratoryjna
1. obl. pole prostokata do momentu podania 2 takich samych bokow
2. wprowadzenie n-elementowego wektora i sumowanie parzystych elementow
3. macierz o wym. nxm, sumowanie wszystkich el. oprocz 1. wiersza
mile widziane zrobienie i wrzucenie
zad. 1:
#include <iostream> using namespace std; int main() { float a,b,polepowierzchni; do { cout<<"Podaj bok a i b:"; cin>>a,b; polepowierzchni=a*b; cout<<"S="<<polepowierzchni<<endl; } while (a!=b) cout<<"podales dwie takie same dane!"<<endl; return 0; }
jeżeli jest jakiś błąd to piszcie
zad. 2:
#include <iostream> using namespace std; int main() { const int wmax=100; //stała, wymiar max wektora float x[wmax], y[wmax]; int n; cout << "podaj liczbe elementow x i y (<"<<wmax<<"):"; cin >> n; int i; for (i=0; i<n; i++) { cout << "podaj x["<<(i+1)<<"]:"; cin >> x[i]; } for (i=n-1; i>=0; i--) { cout << "Podaj y["<<(i+1)<<"]:"; cin >> y[i]; } float suma; suma=0; for (i=0; i<n; i++) { if (i%2==0) suma=suma+x[i]; } }
ten program nie mam pojęcia czy będzie działał, proszę o sprawdzenie
Offline
Użytkownik
pierwsze źle bo zawsze zrobisz jeden obieg petli nawet jak od razu zostana podane 2 takie same dane
Offline
Administrator
ale musze zrobic jeden obieg zeby wprowadzic dane a potem na koncu je porownac, jezeli sa takie same to wyskakujesz z petli; dobrze mysle?
@EDIT
do dobra masz racje, co proponujesz?
Offline
Nowy użytkownik
Na petli while to zrobic nie do while i juz gra gitara
Ostatnio edytowany przez MateuszJarosz (2012-04-02 16:10:37)
Offline
Administrator
czyli
while (a!=b)
{
cout<<"Podaj bok a i b:";
cin>>a,b;
polepowierzchni=a*b;
cout<<"S="<<polepowierzchni<<endl;
}
??
Offline
Użytkownik
zadanie 1.
# include <iostream> using namespace std; int main() { float a,b,polepowierzchni; do { cout<<"Podaj bok a:"; cin>>a; cout<<"Podaj bok b:"; cin>>b; polepowierzchni=a*b; cout<<"S="<<polepowierzchni<<endl; } while (a!=b); cout<<"podales dwie takie same dane!"<<endl; return 0; }
zadanie 2.
#include<stdlib.h> # include <iostream> using namespace std; int main() { float suma=0; const int n=10; int wektor[n]; cout << "podaj liczby:"<<endl; for (int i=0;i<n;i++){ cin >> wektor[i]; } for (int i=1;i<n;i=i+2){ suma+=wektor[i]; } cout << suma; system ("pause"); return 0; }
zadanie 3.
#include<stdlib.h> # include <iostream> using namespace std; int main() { float suma=0; const int n=10; const int m=10; int macierz[n][m]; cout << "podaj liczby:"<<endl; for (int i=0;i<n;i++) for(int a=0;a<m;a++){ cin >> macierz[i][a]; } for (int i=1;i<n;i++) for(int a=0;a<m;a++){ suma+=macierz[i][a]; } cout << suma; system ("pause"); return 0; }
Offline
Administrator
w imieniu pozostałych grup dziękuję
co do 2. zdania to tam miało być sumowanie parzystych a w twoim kodzie się tego nie dopaczyłem
Ostatnio edytowany przez Kamil Kluz (2012-04-02 16:28:15)
Offline
Użytkownik
Pierwsze trzeba na petli while z tym że argumenty podajesz przed petlą a potem w petli.
jeżeli zrobicie to do while to zawsze bedzie jeden obieg nawet jak podacie kwadrat.
Co do drugiego to jest nie sprecyzowane czy trzeba dodać elementy wektora o wartościach parzystych czy wartości o parzystych numerach elementu wektora.
zad 3
#include <iostream>
using namespace std;
int main()
{
const int max=100;
float Y[max][max], suma;
int i,j,n,m;
cout<<"podaj liczbe wierszy:";
cin>>n;
cout<<"podaj liczbe kolumn:";
cin>>m;
for (i=0;i<n;i++)
for(j=0;j<m;j++)
{
cout<<"wprowadz element Y("<<i+1<<','<<j+1<<"):";
cin>>Y[i][j];
}
for (i=1;i<n;i++)
for(j=0;j<m;j++)
suma+=Y[i][j];
cout<<suma;
system ("pause");
}
Ostatnio edytowany przez Łukasz Drupka (2012-04-02 16:48:56)
Offline
Nowy użytkownik
Słabo paczysz Kamilu ostatnia petla for sumuje parzyste.
Offline
Moderator
napiszcie dokładnie to pierwsze, bo nie wiem gdzie argumenty dac, żeby mi zapetlilo ladnie ;p
Offline
Administrator
moglby ktos te zadania napiasac poprawnie? w 2 chyba chodzilo o zliczanie wartosci parzystych
Offline
Użytkownik
Zad 1
{
float a,b;
cout<<"podaj a:";
cin>>a;
cout<<"podaj b";
cin>>b;
while(a!=b)
{
cout<<"pole ="<<a*b<<endl;
cout<<"podaj a:";
cin>>a;
cout<<"podaj b";
cin>>b;
}
}
nie kompilowałem ale powinno działać
Offline
Administrator
hmm albo mi sie wydaje albo podawanie a i b powino byc w petli?
zad. 1 to bym zrobił tak:
#include <iostream> using namespace std; int main() { float a,b,polepowierzchni; do { cout<<"podaj bok a:"; cin>>a; cout<<"podaj bok b"; cin>>b; polepowierzchni=a*b; if (a!=b) cout<<"S="<<polepowierzchni<<endl; else cout<<"podales dwie takie same dane!"<<endl; } while (a!=b) return 0; }
Offline