Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Програма за курсова работа

Featured Replies

Здравейте! Много лошо ударих на камък и се моля някой от вас да разбира и да ми помогне. Молбата ми е ако можете да направите тази програма работеща + коментар от долу кое какво прави кал точно функционира, ще съм ви адски благодарен , че работата е много зле. Благодаря предварително!.. ПС: съжелявам ако съм пуснал темата в грешен раздел ..

Даден е едномерен масив от N-цели числа. Да се подредят елементите на масива, така че разликите между всеки два съседни елемента да бъдат подредени в възходящ ред. За въвеждане на данните, обработка и отпечатване на резултата да се използват функции.

 

_20160531_173340.JPG

Нали се сещате, че никой няма да седне да ви направи курсовата работа от нулата. 

  • Автор

Така е прав си, но съм много на зор трябва ми до утре вечер, а няма как да се справя и точно за това се обърнах тук към вас и някой по компетентен в тая област да ми окаже помощ

Задачата е интересна и няма проблем да ми я напиша "от нулата", само че много мразим да пишем кометари и щом му трябва за утре ще е най-рано вдругиден.

  • Автор

За петък сутринта ми е. За това казах до утре до надвечер за да мога да я науча защото имам и защита. 

Имате ли някакъв написан код, защото това не е фирма за програмиране и всеки тук си има личен живот! Извинявам се, че така говоря, но ако всеки тръгне да си пуска курсовата работа, то ще стане ...!

Успех!!!

  • Автор

Да така е прав сте , но абсолютно нищо нямам.. Само гадното условие на задачата

Просто ви моля за помощ. Ако можех да си я направя или някой друг познат или приятел , нямаше да стигна до тук да ви пиша и затормозявам, но това ми е последната надежда.. :(

Днеска си поиграх със задачата и се оказа, че със случайно генерирани данни вероятността да могат да се подредят е на практика нулева. За да проверя работата на функцията и пускам поредици генерирани така че да могат да се подредят.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 80

void print(int a[])
{
    int i;
    for (i=0; i<N; ++i)
    {
        printf("%5d", a[i]);
    }        
    printf("\n");
}

void init(int a[],int b[])
{
    int i,t=10000,d=-100,m;
    m=t;
    for (i=0; i<N; ++i)
    {
        d+=rand()%6;
        t+=d;
        if (m>t) m=t;
        b[i]=t;
    }
    for (i=0; i<N; ++i)
        b[i]+=1-m;
    for (i=0; i<N; ++i)
    {
        do t=rand()%N; while (b[t]==0);
        a[i]=b[t];
        b[t]=0;
    }
}

void sort(int a[])
{
    int i, j, k, m;
    for (i=0; i<N-1; ++i)
    { 
        k=i;
        for (j=i+1; j<N; ++j) 
            if (a[k]>a[j]) k=j;
        m=a[i];
        a[i]=a[k];
        a[k]=m;
    }  
}  

int check(int t, int a[], int f[])
{
    int i,fl=f[t];
    int d1,d2;
    i=t-1;
    while (i>0 && f[i]!=fl) --i;
    d1=a[t]-a[i];
    if (i==0) return 1;
    t=i-1;
    while (t>0 && f[t]!=fl) --t;
    d2=a[i]-a[t];
    return d1>=d2;
}

int split(int a[],int b[])
{
    int f[N]={};
    int i,t=1;
    while (t<N)
    {
        if (check(t,a,f)) t++;
        else if (f[t]==0) f[t]=1;
        else {
           do f[t--]=0; while (t>0 && f[t]);
           if (t>0) f[t]=1;
        }
        if (t==0) 
        {
            printf("No solution\n");
            return 0;
        }
         
    }
    t=0;
    for (i=N-1; i>0; --i)
        if (f[i]) b[t++]=a[i];
    for (i=0; i<N; ++i)
        if (!f[i]) b[t++]=a[i];
    return 1;
}

int main()
{
    int a[N],b[N];
    srand(time(NULL));
    printf("input data\n");   
    init(a,b);   print(a);
    printf("Sorting...\n");
    sort(a);   print(a);
    printf("Result\n");
    if (split(a,b)) print(b);
}
input data
    6 1625  668   11  580  727 2183  921 2549  246  324  213    5  414 1147   85
  151   21  334  104  182 1839  560   70   56 1070 2426  283  993  703  853  520
  417   51 1228  118 1067  253  640  125  367   44    1 1239  215  461  180 2064
    1 1731 1949  508 1584   32 2303  465   22  770 1424 1329 1492  613 1677  375
   11   36 1313 1152  911 1523 1401   69   91  988  293 2672 1772  839  789  148

Sorting...
    1    1    5    6   11   11   21   22   32   36   44   51   56   69   70   85
   91  104  118  125  148  151  180  182  213  215  246  253  283  293  324  334
  367  375  414  417  461  465  508  520  560  580  613  640  668  703  727  770
  789  839  853  911  921  988  993 1067 1070 1147 1152 1228 1239 1313 1329 1401
 1424 1492 1523 1584 1625 1677 1731 1772 1839 1949 2064 2183 2303 2426 2549 2672

Result
 2549 2303 2064 1839 1731 1625 1523 1424 1329 1239 1152 1070  988  911  839  770
  703  640  580  520  465  417  375  334  293  253  215  180  148  118   91   70
   51   36   22   11    6    1    1    5   11   21   32   44   56   69   85  104
  125  151  182  213  246  283  324  367  414  461  508  560  613  668  727  789
  853  921  993 1067 1147 1228 1313 1401 1492 1584 1677 1772 1949 2183 2426 2672

 

Редактирано от ined (преглед на промените)

Задачата е доста малоумна, защото няма единствено решение. Може да се подредят по-много начини, които отговарят на условието.

  • Автор
на 5.06.2016 г. at 16:29, ined написа:

Страшни благодарности! Направо ми спасихте кожата! Евала, живи и здрави !

 

Здравейте, приятели! 
Нуждая се от помощ по една задача на С++. Ученичка съм, надявам се да не е проблем, че пиша в тази тема. Нова съм в дисциплината "Информатика" и все още съм на Вие с нея.

Имам следната задача: Да се въведе едномерен масив от реални числа и да се изведат номерата на положителните елементи по-малки от числото 4.

Предварително Ви благодаря безкрайно! Вярвам, че все някой ще може да ми помогне. :(

току що, Toni_K написа:

Здравейте, приятели! 
Нуждая се от помощ по една задача на С++. Ученичка съм, надявам се да не е проблем, че пиша в тази тема. Нова съм в дисциплината "Информатика" и все още съм на Вие с нея.

Имам следната задача: Да се въведе едномерен масив от реални числа и да се изведат номерата на положителните елементи по-малки от числото 4.

Предварително Ви благодаря безкрайно! Вярвам, че все някой ще може да ми помогне. :(

Започнете вие, ние ще помагаме. Но мързела не се толерира тук

Ето:

#include <iostream>
using namespace std;
int main ()
{
int a[N]; //масив
int i; //брояч за масива
cout<<"Vyvedi: "<<n<<"realni chisla: \n"; //въвежда масива

for (i=0; i<N; i++)
{ cout << "a[" << i+1 << "]=";
cin >> a;

}
cout << "\n Masiv: \n"; //извежда масива
for (i=0; i<N; i++)
cout << "a[" << i+1 << "]=" << a << endl;

Само това сътворих, но не знам дали удовлетворява и половината условие :( По отношение на извеждането на конкретните номера на елементите по-малки от числото 4 нямам представа как трябва да се напише.

 

Редактирано от Toni_K
естетика (преглед на промените)

Знам, че няма да се компилира най-малко от това, че няма край (кода). Искаха ми това, което съм започнала и го дадох. Нито съм претендирала, че е вярно, нито нищо подобно. Не случайно упоменах, че съм начинаеща в тази дисциплина. Ако обичате не се подигравайте на по-некомпетентните от Вас. Потърсих помощ по задачата, а не коментар за това каква част от написания код удовлетворява кодът!

За обиждане и подиграване няма да говорим - много малко са пишещите (поне в този форум), които го правят.

Но - направо се чудя, кой и какво ви учат в часовете по програмиране.
Първото нещо е да си направите блокова схема и да си определите отделните отделните подзадачи. А после да пишете код.

Вашата задача  - "Да се въведе едномерен масив от реални числа и да се изведат номерата на положителните елементи по-малки от числото 4." Няма да уточняваме какво е масив и кои числа са реални.

  1. Дефиниране на масива.
  2. Запълване на масива
  3. Намиране на положителните числа и сравняването им с критерия - в случая числото 4.
  4. Извеждане на получените резултати.

Виждаме, че за резултатите ще ни трябва втори масив, затова променяме 

  1. Дефиниране на два масива и запълване на основния масив.
  2. Намиране на положителните числа и сравняването им с критерия - в случая числото 4, и записване във втория масив.
  3. Извеждане на получените резултати.

 

@Toni_K - хайде опитай да напишеш код за малки подпрограмки - отделните действия.

@jhoro, благодаря ти за насоките! Ето какво промених и добавих:

#include <iostream>

using namespace std;

int main ()

{

int a[N], b[N];

int i, k;

cout << "Vyvedi " << n << realni chisla: \n";

for (i=0; i<N; i++)

{ cout << "a[" << i+1 << "]=";

cin >> a;

}

k=0;

for (i=0; i<N; i++)

if (a>0 || a<4)

{ b[k] = a;

k++;

}

cout << "\n Pyrvonachalen masiv: \n";

for (i=0; i<N; i++)

cout << "a[" << i+1 << "]=" << a << endl;

if (k==0)

cout << "\n Nqma polojitelni chisla po-malki ot chisloto 4. \n";

else

{

cout << "\n Nov masiv: \n";

for (i=0; i<k; i++)

cout << "b[" << i+1 << "]=" << b << endl;

}

system("pause");

return 0;

}

 

на 10.06.2016 г. в 15:00, Toni_K написа:

...

Принципно.

Когато вмъкваш в мнението код - маркирай го целия и използвай бутона Код - "<>"

#include <iostream>
using namespace std;
int main ()
{
	int a[N], b[N];
	int i, k;
	cout<< "Vyvedi " << n << realnichisla: \n";
	for (i=0; i<N; i++)
	{ cout<< "a[" << i+1 << "]=";
		cin>> a;
	}
	k=0;
	for (i=0; i<N; i++)
		if (a>0 || a<4)
		{ b[k] = a;
			k++;
		}cout<< "\n Pyrvonachalen masiv: \n";
	for (i=0; i<N; i++)
		cout<< "a[" << i+1 << "]=" <<<< endl;
	if (k==0)
		cout<< "\n Nqma polojitelnichislapo-malkiotchisloto 4. \n";
		else
		{
			cout << "\n Nov masiv: \n";
			for (i=0; i<k; i++)
			cout << "b[" << i+1 << "]=" <<<< endl;
		}
	system("pause");
	return 0;
}

В момента не мога - по-късно ще огледам самия код.

Редактирано от jhoro (преглед на промените)

Така - виждам няколко правопикни грешки. На мен не ми пречат,но или компилатора ще се сърди, или резултата няма да е очаквания.

На 7-я ред пишеш 

cout << "Vyvedi " << n << realnichisla: \n";
  • първо - изпуснала си кавичките преди "realnichisla" и второ - използваш недефинирана променлива "n";
  • на 9-и ред - искаш потребителя да въведе стойност на "a[N]", а въведеното го присвояваш на "a". Отново разминаване в дефинициите - имаш дафиниран масив, а работиш с променлива.По-надолу е по същия начин. Замени навсякъде променливата "а" със елемента от масива "a[N]" с номар "N".

В общи линии това са ми забележките (на първо четене). Видя ли, че не е толкова страшно?

 

На останалитe ще кажа - аз лично не написах и една буква код. Ама ...

Редактирано от jhoro (преглед на промените)

Проблема не е само няколко грешки. Проблема е че не знае как се дефинира масив, не знае как се адресира елемент от масива и т.н. Отдавна съм далеч от учението и не ви знам учебните програми, но навремето в края на срока с такова ниво на "знания" изобщо нямаше смисъл да се явяваш на изпит ами се готвиш за поправката.

преди 39 минути, ined написа:

Проблема не е само няколко грешки. Проблема е че не знае как се дефинира масив, не знае как се адресира елемент от масива и т.н. Отдавна съм далеч от учението и не ви знам учебните програми, но навремето в края на срока с такова ниво на "знания" изобщо нямаше смисъл да се явяваш на изпит ами се готвиш за поправката.

Проблема ... проблема е, че ученето не е като ъпгрейт на ... лаптоп (примерно). Махаш старата видеокарта, слагаш новата и готово. Или добавяш външна и пак си готов. Ученето е индивидуален процес - трябав да видиш човека, какво е разбрал, какво не е, защо, и да му помогнеш да го разбере.
Масивите си ги е декларирала добре - само, че после забравя, че са масиви .... 

Няма лоши ученици - има лоши и незаинтересовани учители.

Цитат

Масивите си ги е декларирала добре - само, че после забравя, че са масиви .... 

"Добре декрарираните масиви" с какъв размер са след като на N не само не е присвоена някаква стойност, ами дори няма декларирана такава променлива или константа.

Редактирано от ined (преглед на промените)

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.