Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Kategoria: Akumulatorki / Baterie / Ładowarki

Języki i paradygmaty programowania...

panek89 22 Gru 2009 17:33
  • #1 22 Gru 2009 17:33
    panek89
    Poziom 9  

    Witam Panowie mam problem z kilkoma zadaniami z przedmiotu Języki i paradygmaty programowania...

    Języki i paradygmaty programowania... Języki i paradygmaty programowania...

    Jeżeli ktoś jest w stanie i ma chęć mi pomóc, będę bardzo wdzięczny :)

    Pozdrawiam.

  • #2 22 Gru 2009 18:16
    xanio
    Poziom 27  

    w czym to ma być? C? Pascal? Co już zrobiłeś, jakie masz pomysły a jakie problemy?

  • #3 22 Gru 2009 20:28
    panek89
    Poziom 9  

    myślę, że ma to być w C, nie wiem, w ogóle jak mam się do tego zabrać :(

  • #4 22 Gru 2009 21:46
    Dr.Vee
    VIP Zasłużony dla elektroda

    Proszę pokazać jakiś wkład własny w rozwiązanie zadań, albo temat wyląduje w koszu (Regulamin p. 16, zasady działu Programowanie).

  • #5 22 Gru 2009 22:47
    panek89
    Poziom 9  

    okey :) jutro wstawię swoje wypociny ;]

  • #6 22 Gru 2009 22:49
    adam.lysy
    Poziom 13  

    Jeśli mogę coś podpowiedzieć to operacje na tablicach na pewno prościej przeprowadzić w C lub C++ niż w Pascalu. proszę zacząć od deklaracji tablic jedno lub dwuwymiarowych w zależności od zadania. W jednym zadaniu sprawa jest uproszczona bo na samym etapie deklaracji możemy wpisać wartości do tablicy i zadeklarować jej rozmiar. No ale na początek proszę dać coś od siebie.

  • #7 22 Gru 2009 22:54
    Szymon Tarnowski
    Poziom 27  

    adam.lysy napisał:
    Jeśli mogę coś podpowiedzieć to operacje na tablicach na pewno prościej przeprowadzić w C lub C++ niż w Pascalu.
    Zastanawia mnie ta sugestia, być może w języku C ilość znaków będzie niższa, ale algorytm i tak będzie wygląda podobnie. Różnica będzie tylko w składni operatorów i pętli.

  • #8 22 Gru 2009 23:04
    adam.lysy
    Poziom 13  

    Zgadzam się, uważam jednak że problem może pojawić się w zadaniu 2, jeśli zastosuje się Pascala, chodzi o podwajanie przepisania - nie widzę tego w Pascalu.

  • #9 22 Gru 2009 23:17
    szpila_forever
    Poziom 15  

    Cytat:
    nie widzę tego w Pascalu.


    ???

    Code:

    for i:=1 to t- k do
    begin
          tablica_2[2*i-1]:=tablica_1[k+1];
          tablica_2[2*i]:=tablica_1[k+1];
    end

  • #10 23 Gru 2009 11:57
    panek89
    Poziom 9  

    Tak ma to wyglądać ??

    Code:
    #include <stdio.h>
    

    int main(){
    // zad 1
      srand(time(0));
      int tab[3][4];
      int i,j;
      for(i=0;i<3;i++)
        for(j=0;j<4;j++)
          tab[i][j]=rand();
      int minx=0;
      int miny=0;
      for(i=0;i<3;i++)
        for(j=0;j<4;j++)
          if(tab[i][j]<=tab[minx][miny]){  // '<=' gwarantuje znalezienie ostatniej pozycji
            minx=i;
            miny=j;
          }
      printf("minimalna liczba [x,y]: %d [%d,%d]\n",tab[minx][miny],minx,miny);

      //zamiana
      int wart=tab[0][0];
      tab[0][0]=tab[minx][miny];
      tab[minx][miny]=wart;

      printf("wartosc tabeli o indeksach [0,0]: %d\n",tab[0][0]);


    //zad 2

      char s[1024];
      printf("Podaj ciag: ");
      fgets(s,1024,stdin);
      char* q=s;
      while(*q && *q!='\r' && *q!='\n')q++;
      *q=0;

      char d[1024];

      printf("podaj k: ");
      fgets(d,1024,stdin);
      q=d;
      while(*q && *q!='\r' && *q!='\n')q++;
      *q=0;
      int k=strtol(d,0,10);

      printf("podaj t: ");
      fgets(d,1024,stdin);
      q=d;
      while(*q && *q!='\r' && *q!='\n')q++;
      *q=0;
      int t=strtol(d,0,10);

      q=s+k;
      char* p=d;
      /*int*/ i=t-k+1;
      while(i-- && *q){
        *(p++)=*q;
        *(p++)=*(q++);
      }
      *p=0;

      printf("s=%s\nk=%d\nt=%d\nwynik=%s\n",s,k,t,d);


    // zad 3

      srand(time(0));
      /*int*/ i=7;
      int tb[7];
      while(i--){
        *(tb+i)=rand();
        // wartosci poczatkowe
        printf("tb[%d]=%d\n",i,*(tb+i));
      }
      i=7;
      long long int sum=0;
      while(i--){
        if(i>=4 && i<=7)*(tb+i)=111;
        sum+=*(tb+i);
        printf("tb[%d]=%d\n",i,*(tb+i));
      }
      printf("suma=%ld\n",sum);

      return 0;
    }


    Jeżeli te 3 zadania mam dobrze :) to zostało mi tylko to...:
    Języki i paradygmaty programowania...

  • #11 28 Gru 2009 16:35
    panek89
    Poziom 9  

    chyba nikt mi tego nie sprawdzi :(

  • #12 07 Sty 2010 18:21
    edd123
    Poziom 9  

    Pierwsza część mogłaby wyglądać tak:

    Code:
    #include <iostream>
    
    using namespace std;

    void main(){
       float Tablica1[4][4];
       int LiczbaElem = 0;
       int i, j;
       for(i=0;i<4;i++)
          for(j=0;j<4;j++){
             cout << "Wpisz liczbe: ";
             cin >> Tablica1[i][j];
          }
       for(i=0;i<4;i++)
          for(j=0;j<4;j++)
             if(Tablica1[i][j] >=4 && Tablica1[i][j]<=15) LiczbaElem++;
       cout << "Liczb z zakresu 4-15 jest: " << LiczbaElem << endl;
       system("pause");
    }


    Niestety tej drugiej części nie udało mi się napisać :/ Niby sprawdza, ale czasami wyniki wychodzą poza zasięg zmiennej :/ Jak znajdę błąd to się odezwę