Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: vyrgozunqk в Dec 22, 2009, 19:06



Титла: Тема, в която можете да молите за помощ за елементарни C/C++ (и др.) задачки
Публикувано от: vyrgozunqk в Dec 22, 2009, 19:06
Здравейте, имам проблем в университета и не мога да си съставя изискваната програма, тъй-като бях болен доста дълго време и нямам никаква идея от масиви, а не мога да взема заверка иначе, ще съм ви много благодарен, ако ми помогнете за въпросната програма и по възможност напишете и малко разяснения към нея, защото ще ме карат все пак да дам някакви разяснения примерно кой оператор за какво е там и за какво се бори, предполагам, че за вас е елементарно и ще ви домързи даже да ми отговорите, но все пак ви моля...


Та, условието на задачата е:

Напишете програма на C, в която се дефинира и инициализира едномерен масив от тип int с горна граница равна на 5. Подредете елементите на масива по възходящ ред. 

Също, ако има няколко начина за писане на въпросното условие, то то трябва да бъде по най-елементарният


Благодаря предварително, на всички отзовали се !  [_]3




Титла: Re: Програма, в която се дефинира и инициализира едномерен масив от тип int
Публикувано от: b2l в Dec 22, 2009, 19:13
Да беше казал на какъв език го искаш тоя масив...


Титла: Re: Програма, в която се дефинира и инициализира едномерен масив от тип int
Публикувано от: vyrgozunqk в Dec 22, 2009, 19:26
Извинявам се много, "C"  :)


Титла: Re: Програма, в която се дефинира и инициализира едномерен масив от тип int
Публикувано от: progmetal в Dec 22, 2009, 19:50
Е толкова ли е паднало нивото на университетите в България? Надявам се това да не е КСТ в ТУ.
По темата: Не е ясно от условието на задачата как точно се инициализира масива, но
http://computer.howstuffworks.com/c10.htm
ще свърши работа, без рандом генерирането на числата.


Титла: Re: Програма, в която се дефинира и инициализира едномерен масив от тип int
Публикувано от: b2l в Dec 22, 2009, 19:52
Код
GeSHi (C++):
  1. #include "stdafx.h"
  2. #include "iostream"
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6.  
  7. int _tmain(int argc, _TCHAR* argv[])
  8. {
  9. int array [5];
  10. for (int i = 0; i < 5; i++)
  11. {
  12. cout << "Vyvedete "<< i+1 <<" element: ";
  13. cin >> array[i];
  14. }
  15. sort (array, array+5);
  16. for (int i = 0; i < 5; i++){
  17. cout << array[i] << " " ;
  18. }
  19. return 0;
  20. }
  21.  

Най-тъпото, което има в нет-а, кода е на C++, използва готова библиотека: #include <algorithm>

PS: Ако предадеш това мисля че ще ходиш февруари пак на изпит  :D :D :D :D


Титла: Двумерен масив
Публикувано от: theenemy в Dec 22, 2009, 19:54
Напишете програма, която копира елементите на един двумерен масив в друг двумерен масив. Приемете, че масивите имат една и съща размерност.   

Това е програмата, ако някои може да помогне ще съм много благодарен, трябва ми спешно.
мерси предварително.


Титла: Re: Програма, в която се дефинира и инициализира едномерен масив от тип int
Публикувано от: b2l в Dec 22, 2009, 19:59
Код
GeSHi (C):
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void)
  5. {
  6.  int arrayMe[5];
  7.  int a, b, t;
  8.  for(a = 0; a < 5; a++)
  9.      scanf("%d", &arrayMe[a]);
  10.  
  11.  /* now, sort them using a bubble sort */
  12.  
  13.  for(a = 1; a < 5; ++a)
  14.    for(b = 4; b >= a; --b) {
  15.      /* compare adjacent elements */
  16.      if(arrayMe[ b - 1] > arrayMe[ b ]) {
  17.        /* exchange elements */
  18.        t = arrayMe[ b - 1];
  19.        arrayMe[ b - 1] = arrayMe[ b ];
  20.        arrayMe[ b ] = t;
  21.      }
  22.    }
  23.  
  24.  /* display sorted list */
  25.  for(t=0; t < 5; t++) printf("%d ", arrayMe[t]);
  26.  
  27.  return 0;
  28. }
  29.  

Ето го и на С, да живее google...
PS: Предния пост е писан на Visual Studio 2005, да не се чудиш за какво е тая библиотека stdafx.h


Титла: Re: Двумерен масив
Публикувано от: b2l в Dec 22, 2009, 20:08
//off
Хайде няма да бъда нахален, но спешно ми трябват ....ммммм....да кажем 300 кинта, добре де, за една програма са доста, аре ще махнем едната 0-ла....ако те устройва пиши на ЛС.


Титла: Въпрос относно копиране от един масив в друг
Публикувано от: SaintAnger в Dec 22, 2009, 20:09
Здравейте, значи моя случай е следния..
Трябва да напиша програма която да копира стоиностите от единя масив в другия и да ги изведе..
Докарал съм го горе долу до тук..
Обаче как да накарам тия стойности на масива M да се копират в другия масив N
#include <iostream>

using namespace std;

int main()
{
//declare array
 int m[2][2];
 int n[2][2];
 
 //enter inputs
int i,j;
  for(i=0;i<2;i++)   
     for(j=0;j<2;j++)
     {
          cout<<"въведете m["<< i <<"]["<< j <<"] = ";
          cin>>m[j];
     }
     cout << "m[0][0]="<<m[0][0]<<endl;
     cout << "m[0][1]="<<m[0][1]<<endl;
     cout << "m[1][0]="<<m[1][0]<<endl;
     cout << "m[1][1]="<<m[1][1]<<endl;
     cout << "n[0][0]="<<n[0][0]<<endl;

}
Благодаря предварително!


Титла: Re: Програма, в която се дефинира и инициализира едномерен масив от тип int
Публикувано от: tyuio в Dec 22, 2009, 20:12
тама щех да кажа че  не е добре да му даваш код от С++ че щом задава такъв глупав въпрос без да е проверил в търсачка, значи няма да може да си го приправи за С
Я кажи къде учиш та задачата е толкова "Трудна"?
ето още един готов код само дето трябва да си приправиш в масива да се вкарват числата от клавиатура - ако можеш това!

Код
GeSHi (C):
  1. [code]
  2. /* qsort example */
  3.  
  4. #include <stdio.h>
  5.  
  6. #include <stdlib.h>
  7.  
  8.  
  9.  
  10. int values[] = { 40, 10, 100, 90, 20, 25 };
  11.  
  12.  
  13.  
  14. int compare (const void * a, const void * b)
  15.  
  16. {
  17.  
  18. return ( *(int*)a - *(int*)b );
  19.  
  20. }
  21.  
  22.  
  23.  
  24. int main ()
  25.  
  26. {
  27.  
  28. int * pItem;
  29.  
  30. int n;
  31.  
  32. qsort (values, 6, sizeof(int), compare);
  33.  
  34. for (n=0; n<6; n++)
  35.  
  36. {
  37.  
  38. printf ("%d ",values[n]);
  39.  
  40. }
  41.  
  42. return 0;
  43.  
  44. }
  45.  
  46.  
  47.  
[/code]


Титла: Re: Въпрос относно копиране от един масив в друг
Публикувано от: SaintAnger в Dec 22, 2009, 20:44
Ами всъщност се оправих..
сложих просто едно "n[j]=m[j];" след въвеждането на стоиностите..


Титла: Re: Въпрос относно копиране от един масив в друг
Публикувано от: b2l в Dec 22, 2009, 20:51
//off
Хора моля Ви се само не споменавайте в кой Университет учите (ако това са задачи от университет де).


Титла: Re: Двумерен масив
Публикувано от: ivanatora в Dec 22, 2009, 21:27
Естествено че ти трябва спешно - като си спал цял семестър.
Форумите не са място за подаряване на курсови работи. Темата е репортната и се надявам че ще иде където трябва.


Титла: Re: Двумерен масив
Публикувано от: b2l в Dec 22, 2009, 21:54
На Коледа стават чудеса:
Код
GeSHi (C++):
  1. #include <stdio.h>
  2. #include "iostream"
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. int arrayOne[5][5];
  8. int arrayTwo[5][5];
  9.  
  10. /*Input First Array*/
  11.  
  12. for (int i = 0; i < 5; i++)
  13. {
  14. for(int j = 0; j < 5; j++)
  15. {
  16. cout << "Vyvedete [" << i+1 << ", " << j+1 << "] element: ";
  17. cin >> arrayOne[i][j];
  18. }
  19. }
  20.         cout << "First Array: ";
  21. /*Input Second One*/
  22.  
  23. for (int i = 0; i < 5; i++)
  24. {
  25. for(int j = 0; j < 5; j++)
  26. {
  27. cout << "Vyvedete [" << i+1 << ", " << j+1 << "] element: ";
  28. cin >> arrayTwo[i][j];
  29. }
  30. }
  31. /*Program copy element from One In Two*/
  32. cout << "Second Array: ";
  33. for (int i = 0; i < 5; i++)
  34. {
  35. for (int j = 0; j < 5; j++)
  36. {
  37. arrayTwo[i][j]=arrayOne[i][j];
  38. }
  39. }
  40.  
  41. /*Output Second Array*/
  42. for (int i = 0; i < 5; i++)
  43. {
  44. for (int j = 0; j < 5; j++)
  45. {
  46. cout << arrayTwo[i][j] << endl;
  47. }
  48. }
  49. return 0;
  50. }
  51.  
  52.  


Титла: Re: Двумерен масив
Публикувано от: b2l в Dec 22, 2009, 22:00
Добре де  :D :D :D :D ;D ;D ;D ;D тука ми подсказват, че не е трябвало да въвеждам 2-рия масив ръчно, можело е да го оставя празен - ама за мен така се получава много тъпа задача, но по интересния въпрос е защо не направих втория масив пълен с нули? :D :D :D :D ;D ;D ;D ;D Щото съм СМОТАН  ;D ;D ;D ;D хахахаха


Титла: Re: Двумерен масив
Публикувано от: luda_glawa в Dec 22, 2009, 22:20
Добре де  :D :D :D :D ;D ;D ;D ;D тука ми подсказват, че не е трябвало да въвеждам 2-рия масив ръчно, можело е да го оставя празен - ама за мен така се получава много тъпа задача, но по интересния въпрос е защо не направих втория масив пълен с нули? :D :D :D :D ;D ;D ;D ;D Щото съм СМОТАН  ;D ;D ;D ;D хахахаха

Моля те, оптимизирай го. Не ме мъчи :D Вярвам в теб. Можеш!


Титла: Re: Двумерен масив
Публикувано от: gat3way в Dec 22, 2009, 22:22
Код:
#define x 5
#define y 5
int ar1[x][y];
int ar2[x][y];

...

memcpy(&ar2[0][0],&ar1[0][0],sizeof(ar1));


Копирането на елементите на масива е един ред код, ама това е строго секретно да знаеш :)


Титла: Re: Двумерен масив
Публикувано от: b2l в Dec 22, 2009, 22:45
Моля те, оптимизирай го. Не ме мъчи :D Вярвам в теб. Можеш!
Хахаха - той код-а беше по-голям - хахахаха...
Сърдечно глагодаря за вярата в мен :) Това означава много за мен :)


Титла: Re: Програма, в която се дефинира и инициализира едномерен масив от тип int
Публикувано от: bop_bop_mara в Dec 23, 2009, 03:51
Извинявайте всички, ама за времето за което човека ще разчете кода, ще научи масивите :) Но може би никой няма да иска от него да  обяснява кода... Интересно за цял семстър учене как са успели да стигнат чак до масивите в С, представяте ли си до лятото ще научат и функции ;)

Сега след бъзиците, ето какво аз си мисля, че се иска в задачата:
1. Дефинираме масив - според мен не искат нищо повече от int a[100];
2. Инициализация с елементи с горна граница 5 - аз си го представям като rand()%6 (макар че никъде не се казва, че числата трябва да са неотрицателни)
3. Сортиране - най вероятно искат да се направи bubble sort, quick sort е прекалено завъртян ;)

На backtolife втория код е почти ОК, само трябва да си доуточниш условието - колко елемента да има масива и как да се въвеждат числа - от клавиатурата или да са случайни.


//оффтопик
И все пак, vyrgozunqk, не се излагай, седни и си научи, това са меко казано елементарни неща (ние сме учили в рамките на 2 лекции цикли, масиви и 4-5 вида сортирания, в първата половина на семестъра). А C е един малък и много мощен език, с който може да изкарваш хляба на цяло семейство ;)


Титла: Тема, в която можете да молите за помощ за елементарни C/C++ (и др.) задачки
Публикувано от: bop_bop_mara в Dec 23, 2009, 04:20
ОК, явно за първокурсниците настъпва часът на домашни, курсови проекти и сесии. И започва голямото чудене как да си ги напишем тия C програми  ??? ??? ???

Създавам тази тема за всички тези, които са решили да си търсят кой да им напише (по-голямата част от) задачата.

Обаче още от сега ще си сложим няколко допълнителни правила:

1. Преди да поставите какъвто и да е въпрос, използвайте някоя интернет търсачка и вижте дали няма да успеете сами да се справите. Също така вижте вече решените задачи в тази тема и си помислете дали не ви вършат работа.
2. Поставяйте въпросите си много ясно и точно, т.е. ако няма да си решавате задачата сами, поне се постарайте да научите условието й. И не забравяйте да кажете за кой език за програмиране и евентуално за каква среда за програмиране/ОС си говорим (и да, C++ и Visual Basic  са различни неща ;) )
3. Когато поставяте нов въпрос, сложете си ваше заглавие на поста (свързано с проблема, който ще решаваме). Когато отговаряте на някой въпрос, погрижете се в заглавието на поста ви да пише "Re:заглавието_на_оригиналния-пост" за по-добра четимост :)
4. Никой не е задължен да отговаря, да дава код или каквото и да е. Който недоволства от зададените въпроси, нека просто да ги игнорира (затова за по-лесно ги събираме в една тема). Който не получи отговори, да търси по-задълбочено.
5. Няма да толерираме присъединяването на членове във форума с едничката цел да им решим задачите. Т.е. за такива индивиди ще има някакви последствия. В крайна сметка на някои хора им плащат за това да обучават ученици и студенти.

И така, събирам 3те теми от днес (вчера) в тази и да видим колко още ще се появят :)

ПС. Събирането на 3те теми поомаза малко логическата последователност за сметка на времевата... Но мисля, че по заглавията на постовете може да се ориентира човек.