C++ nie daje rady!

rmc87
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 3 sty 2008, o 19:16
Płeć: Mężczyzna
Lokalizacja: Opole

C++ nie daje rady!

Post autor: rmc87 »

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?
smiechowiec
Użytkownik
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!

Post autor: smiechowiec »

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;
}
rmc87
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 3 sty 2008, o 19:16
Płeć: Mężczyzna
Lokalizacja: Opole

C++ nie daje rady!

Post autor: rmc87 »

ale super:) a umiesz zrobic reszte?
smiechowiec
Użytkownik
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!

Post autor: smiechowiec »

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.
rmc87
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 3 sty 2008, o 19:16
Płeć: Mężczyzna
Lokalizacja: Opole

C++ nie daje rady!

Post autor: rmc87 »

a 2 i 5, jestes w stanie zrobic?? znasz kogos kto moglby cos wymyslic?
smiechowiec
Użytkownik
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!

Post autor: smiechowiec »

Chyba trzeba trochę poczekać, może ktoś coś wymyśli lub podpowie.
Piąte już w sumie jest gotowe.
rmc87
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 3 sty 2008, o 19:16
Płeć: Mężczyzna
Lokalizacja: Opole

C++ nie daje rady!

Post autor: rmc87 »

to 5 jak?

[ Dodano: 4 Stycznia 2008, 10:51 ]
juz widze!! Przepraszam!!

[ Dodano: 4 Stycznia 2008, 10:56 ]
a z tym 4 dasz rade??
Rafal88K
Użytkownik
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!

Post autor: Rafal88K »

smiechowiec to miało być w C++

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;
}
Tutaj wersja lepsza:

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;
}
Oczywiście proponuje wykorzystać 2 wersję
rmc87
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 3 sty 2008, o 19:16
Płeć: Mężczyzna
Lokalizacja: Opole

C++ nie daje rady!

Post autor: rmc87 »

a mozcie to tych wszystkich programow dac opisy od paczatku do konca?
Rafal88K
Użytkownik
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!

Post autor: Rafal88K »

Wersja I do zad. 4 z komentarzami:

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;
}
ODPOWIEDZ