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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

C++ Помощ свързана с Курсова работа

Featured Replies

Здравейте, за съжаление изпитвам трудности с зададената ми курсна работа, стигнах до някъде и след това просто забих. Най-вече се изгубих във въвеждането на входните данни и отпечатването им. Моля помогнете ми поне за тях. Благодаря ви. :(

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

Да се състави програма за обработка на масива A[N,N] където данните са цели числа в интервала [-1000;1000]. Програмата да извърши следните действия:

-отпечатване на условието на задачата.
-отпечатване на имената на автора.
-въвеждане на входните данни.
-отпечатване на входните данни
-а) да се образува едномерен масив D|N|,който се образува от всички елементи по-големи от P (P се въвежда от клавиатурата),които лежат под главния диагонал на дадения масив;
-б) полученият масив да се сортира по големина;
-отпечатване на получените резултати след обработка а) и след обработка б).

Стигнах до тук:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
const int N=15;
int n,j,i,m=0;
int A[N][N],D[N];
int main()
{
    printf("Vladislav Nikolov Hristov\n");
    printf("MTF,Grupa: 19,Potok: 3,F.Nomer: 09849323\n");
    printf("Da se systavi programa za obrabotka na masiva A[N,N], kadeto dannite sa celi chisla v intervala [-1000;1000]. Programata da izvyrshi slednite deistviq:\n");
    printf("-otpechatvane na uslovieto na zadachata;\n");
    printf("-otpechatvane na imenata na avtora na programata;\n");
    printf("-vavejdane na vhodnite danni;\n");
    printf("-otpechatvane na vhodnite danni;\n");
    printf("a) da se obrazuva ednomeren masiv D|N|,koito se obrazuva ot vsichki elementi po-golemi ot P (P se vavejda ot klaviaturata),koito lejat pod glavniq diagonal na dadeniq masiv;\n");
    printf("b) polucheniqt masiv da se sortira po golemina;\n");
    printf("-otpechatvane na poluchenite rezultati sled obrabotka a) i sled obrabotka b)\n");
    scanf("%d");
    
    
    system("pause");
    return 0;
}

 

 

 

 

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

преди 1 час, justdoingit написа:

Здравейте, за съжаление изпитвам трудности с зададената ми курсна работа, стигнах до някъде и след това просто забих. Най-вече се изгубих във въвеждането на входните данни и отпечатването им. Моля помогнете ми поне за тях. Благодаря ви. :(

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

Да се състави програма за обработка на масива A[N,N] където данните са цели числа в интервала [-1000;1000]. Програмата да извърши следните действия:

-отпечатване на условието на задачата.
-отпечатване на имената на автора.
-въвеждане на входните данни.
-отпечатване на входните данни
-а) да се образува едномерен масив D|N|,който се образува от всички елементи по-големи от P (P се въвежда от клавиатурата),които лежат под главния диагонал на дадения масив;
-б) полученият масив да се сортира по големина;
-отпечатване на получените резултати след обработка а) и след обработка б).

Стигнах до тук:

Стигнар си до никъде. Само си дефинирал променливите и малко принтиране.

Хайде помисли и напиши как ще въвеждаш (цикъл), после как ще сравняваш, вадиш от големия и слагаш в малкия масив. Уточни кой е "главния диагонал" - от А(0,0) до А(N,N) или от А(0,N) до A(N,0).

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

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

  • Автор

Здравейте отново, съжалявам че не сте ме разбрали. По-скоро исках помощ със отпечатването и въвеждането на входните данни, но както и да е.

Ето до къде съм стигнал сега:

 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    
    int A[100][100],j,i,k,m,p;
    printf("Da se sastavi programa za obrabotka na masiva A[N,N],kudeto dannite sa celi chisla v intervala[-1000;1000].\nProgramata da izvurshi slednite deistviq:\n");
    printf("-otpechatvane na uslovieto na zadachata;\n-otpechatvane na imenata na avtora na programata;\n-vuvejdane na vhodnite danni;\n-otpechatvane na vhodnite danni;\n a)da se obrazuva ednomeren masiv D[N],koito se obrazuva ot vsichki elementi po-golemi ot P(P se vuvejda ot klaviaturata),koito lejat pod glavniq diagonal na dadeniq masiv;\n b)polucheniqt masiv da se sortira po golemina;\n-otpechatvane na poluchenite rezultati sled obrabotka a) i sled obrabotka b)\n");
    printf("Izgotvil programata:Vladislav Nikolov Hristov , MTF,Grupa: 19,Potok: 3,F.Nomer: 09849323 ");

\n");
    printf("Molia vavedete danni za masiv A:\n");
    for(i=0; i<100; i++)
    {
        for(j=0; j<100; j++)
        scanf("%d",&A[j] );
    }
    for(i=0;i<100;i++)
    {
        for(j=0;j<100;j++)
        printf("Element A[%d,%d] ima stoinost %d\n", i,j,A[j]);
    }
    
    printf("Vavedete stoinost za P:\n");
    scanf("%d", &p);
    for(i=0;i<100; i++)
    {
        for(j=0;j<100;j++)
        if(i<j)
        if(A[j] > p)
        k++;
    }
    int L[k];
    for(m=0;m<k; m++)
    for(i=0;i<100;i++)
    {
        for(j=0;j<100;j++)
        if(i<j)
        if(A[j]>p)
        L[m]=A[j];
}
    for(m=0;m<k;m++)
    if (L[m-1]>L[m])
    L[m]=L[m-1];
    for(m=0;m<k;m++)
    printf("L[%d]=%d", m, L[m]);
    system("pause");
    return 0;
}

П.С : Отговора на Ined ме уби xD

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

Масива А след като е дефиниран като двумерeн масив навсякъде трябва да го ползваш като такъв.

Подобно задаване на динамичен размер на масива int L[k] не е по С стандарта и не всички компилатори ще го приемат за вярно.

Вариантите са или задаване достатъчно голям статичен размер

#define N 100

int A[N][N], D[N*(N-1)/2];

или използване динамично заделяне на памет за масива

int *D;

D=(int *) malloc(k * sizeof(int));

Само едно минаване няма да сортира масива, а и при m=0 се получава L[-1] което е извън клетките на масива.

 

 

 

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

Към автора - ined ти каза вякой конкретни неща, но първо някой по-общи - щом сега се учиш:

- свикни да си пишеш коментари. Всички редове започващи с 2 наклонени черти (//) са коментари и не влияят по никакъв начин на програмата. Даже първо си пиши като коменар отделните под-задачи и така ще знаеш какво правиш.

// дефиниране на променливите
// отпечатване на условието на задачата
// отпечатване на имената на автора
// въвеждане на входните данни
// отпечатване на входните данни
// задаване на стойност на Р
// попълване на едномерен масив
// сортиране на едномерен масив
// отпечатване на получените резултати след обработките

Наличието на коментар прави кода по-лесно четим - за други хора и/или даже за теб самия след време.

- По време на писане на кода, при някакви матипулации с променливите - слагай по един printf. За да виждаш при теста какво се получава.

В следния блок

for(m=0;m<k; m++)
for(i=0;i<100;i++)
    {
    	for(j=0;j<100;j++)
        if(i<j)
        if(A[j]>p)
        L[m]=A[j];
	}

имаш гри вложени цикъла - за всяка стойност на m обхождаш целия масив. При това положение всички елементи на масива L са със стойността на най-толемия елемент на масива А. Трябва, при изпълняване на условието A[j]>p - да се преминава към следващата стойност на m.

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

на 3.11.2015 г.,, justdoingit написа:

Здравейте, за съжаление изпитвам трудности с ...

Какво стана - направи ли програмата???

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

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

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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