C++ nie daje rady!
C++ nie daje rady!
Witam,
moze ktos napisac takie programy:
1. podaje 2 liczby, n =N x=R+, ma wyliczyc nastepujacy wzór: n-1+x/x+n
2. A=R, n>1, n=3, e= 10^{-6} , P1=A/n, P=P1+(P1- A/P1^{n-1})/n, warunek jaki musi spelnic |P1-P|/|P1|0, a [
eq] b, wyznacza liczbe max i min, liczy ile jest liczb parzystych miedzy tymi liczbami oprocz a i b
Da sie cos wymyslic?
moze ktos napisac takie programy:
1. podaje 2 liczby, n =N x=R+, ma wyliczyc nastepujacy wzór: n-1+x/x+n
2. A=R, n>1, n=3, e= 10^{-6} , P1=A/n, P=P1+(P1- A/P1^{n-1})/n, warunek jaki musi spelnic |P1-P|/|P1|0, a [
eq] b, wyznacza liczbe max i min, liczy ile jest liczb parzystych miedzy tymi liczbami oprocz a i b
Da sie cos wymyslic?
-
- Użytkownik
- Posty: 374
- Rejestracja: 21 cze 2007, o 11:28
- Płeć: Mężczyzna
- Lokalizacja: Łostowice
- Pomógł: 146 razy
C++ nie daje rady!
Kod: Zaznacz cały
#include <stdio.h>
int f1() {
double x;
int n;
printf("Podaj n "); scanf("%d", &n);
printf("Podaj x "); scanf("%lf", &x);
printf("(%i - 1 + %g) / (%g + 1) = %g
", n, x, x, (n - 1 + x) / (x + 1) );
return 0;
}
int main() {
f1();
return 0;
}
-
- Użytkownik
- Posty: 374
- Rejestracja: 21 cze 2007, o 11:28
- Płeć: Mężczyzna
- Lokalizacja: Łostowice
- Pomógł: 146 razy
C++ nie daje rady!
Może jeszcze trzecie i piate się uda
Kod: Zaznacz cały
#include <stdio.h>
#include <string.h>
int f3() {
double macierz[5][5] = {
{1, 2, 3, 4, 5 },
{6, 7, 8, 9, 10},
{11,12,13,14,15},
{16,17,18,19,20},
{21,22,23,24,25} };
double iloczyn = 1;
char s[80] = "", si[20];
puts("Zad 3.");
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++)
printf("%4g ", macierz[i][j]);
puts("");
}
for(int i = 0; i < 5; i++) {
iloczyn = iloczyn * macierz[i][i];
sprintf(si, "%g", macierz[i][i]);
if (s[0])
strcat(s, "*");
strcat(s, si);
}
printf("Iloczyn na glownej przekatnej wynosi %s = %g
", s, iloczyn );
return 0;
}
int f5() {
int a, b;
puts("Zad 5.");
printf("Podaj a "); scanf("%d", &a);
printf("Podaj b "); scanf("%d", &b);
if (a > b) {
printf("max = %d, min = %d", a, b);
b = b + a;
a = b - a;
b = b - a;
}
else {
printf("max = %d, min = %d", a, b);
}
printf("
Liczby parzyste miedzy %d %d
", a, b);
for(int i = a + 1; i < b; i++)
if ((i % 2) == 0)
printf("%i ", i);
return 0;
}
int main() {
f3();
f5();
return 0;
}
Ostatnio zmieniony 4 sty 2008, o 10:44 przez smiechowiec, łącznie zmieniany 4 razy.
-
- Użytkownik
- Posty: 374
- Rejestracja: 21 cze 2007, o 11:28
- Płeć: Mężczyzna
- Lokalizacja: Łostowice
- Pomógł: 146 razy
C++ nie daje rady!
Chyba trzeba trochę poczekać, może ktoś coś wymyśli lub podpowie.
Piąte już w sumie jest gotowe.
Piąte już w sumie jest gotowe.
C++ nie daje rady!
to 5 jak?
[ Dodano: 4 Stycznia 2008, 10:51 ]
juz widze!! Przepraszam!!
[ Dodano: 4 Stycznia 2008, 10:56 ]
a z tym 4 dasz rade??
[ Dodano: 4 Stycznia 2008, 10:51 ]
juz widze!! Przepraszam!!
[ Dodano: 4 Stycznia 2008, 10:56 ]
a z tym 4 dasz rade??
-
- Użytkownik
- Posty: 311
- Rejestracja: 15 mar 2007, o 16:52
- Płeć: Mężczyzna
- Lokalizacja: Lublin
- Podziękował: 28 razy
- Pomógł: 54 razy
C++ nie daje rady!
smiechowiec to miało być w C++
Tutaj masz 4 (wersja gorsza):
Tutaj wersja lepsza:
Oczywiście proponuje wykorzystać 2 wersję
Tutaj masz 4 (wersja gorsza):
Kod: Zaznacz cały
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
int iloczyn = 1, i, n, **macierz;
cout << "Podaj rozmiar macierzy: ";
cin >> n;
macierz = new int*[n];
for(i = 0; i < n; ++i)
macierz[i] = new int[n];
cout << "Wprowadz dane:" << endl;
for(i = 0; i < n; ++i)
{
for(int j = 0; j < n; ++j)
{
cin >> macierz[i][j];
}
}
for(i = 0; i < n; ++i)
{
iloczyn *= macierz[i][i];
}
cout << "Iloczyn na glownej przekatnej: " << iloczyn;
for(i = 0; i < n; ++i)
delete[] macierz[i];
delete[] macierz;
cout << endl;
system("pause");
return 0;
}
Kod: Zaznacz cały
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char** argv)
{
int n, i, wartosc, iloczyn = 1;
vector<vector<int> > macierz;
cout << "Podaj rozmiar: ";
cin >> n;
for(i = 0; i < n; ++i)
{
macierz.push_back(vector<int>());
for(int j = 0; j < n; ++j)
{
cin >> wartosc;
macierz[i].push_back(wartosc);
}
}
cout << endl;
for(i = 0; i < n; ++i)
{
iloczyn *= macierz[i][i];
}
cout << "Iloczyn = " << iloczyn << endl;
cout << endl;
system("pause");
return 0;
}
-
- Użytkownik
- Posty: 311
- Rejestracja: 15 mar 2007, o 16:52
- Płeć: Mężczyzna
- Lokalizacja: Lublin
- Podziękował: 28 razy
- Pomógł: 54 razy
C++ nie daje rady!
Wersja I do zad. 4 z komentarzami:
Teraz komentarze dla 2 wersji:
Kod: Zaznacz cały
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
int iloczyn = 1, i, n, **macierz;
cout << "Podaj rozmiar macierzy: ";
// Wczytuje rozmiar tablicy np. 4
cin >> n;
// Dynamicznie alokuje pamięć na tablicę 2D
macierz = new int*[n];
for(i = 0; i < n; ++i)
macierz[i] = new int[n];
cout << "Wprowadz dane:" << endl;
// Wczytuje dane np.
// 1 1 1 1
// 2 2 2 2
// 3 3 3 3
// 4 4 4 4
for(i = 0; i < n; ++i)
{
for(int j = 0; j < n; ++j)
{
cin >> macierz[i][j];
}
}
// Oblicza iloczyn np.
// [1] 1 1 1
// 2 [2] 2 2
// 3 3 [3] 3
// 4 4 4 [4]
for(i = 0; i < n; ++i)
{
iloczyn *= macierz[i][i];
}
// Wyświetla wynik
cout << "Iloczyn na glownej przekatnej: " << iloczyn;
// Zwalnia pamięć
for(i = 0; i < n; ++i)
delete[] macierz[i];
delete[] macierz;
cout << endl;
system("pause");
return 0;
}
Teraz komentarze dla 2 wersji:
Kod: Zaznacz cały
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char** argv)
{
int n, i, wartosc, iloczyn = 1;
vector<vector<int> > macierz;
cout << "Podaj rozmiar: ";
cin >> n;
// Wczytuje do kontenera (vector) dane
for(i = 0; i < n; ++i)
{
macierz.push_back(vector<int>());
for(int j = 0; j < n; ++j)
{
cin >> wartosc;
macierz[i].push_back(wartosc);
}
// push_back - dodaj na koniec wektora kopię argumentu
}
cout << endl;
// Oblicz iloczyn
for(i = 0; i < n; ++i)
{
iloczyn *= macierz[i][i];
}
cout << "Iloczyn = " << iloczyn << endl;
cout << endl;
system("pause");
return 0;
}