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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

Блок - схемa !

Featured Replies

Може ли да помогнете за създаването на блок - схема , това е кода на програмата на С++. Ще съм много благодарен, ако може да ми помогнете.

 

#include <iostream>


using namespace std;


int main()
{
    int c,n;
    float d[50],f[50],L,G,S=0.0f,Avef;


    do
    {
        cout<<"n(6..49)=";cin>>n;
    }
    while(n<6||n>49);
    cout<<endl;


    for(c=0;c<n;c++)
    {
        cout<<"d["<<c+1<<"]=";cin>>d[c];
    }
    cout<<endl;


    do
    {
        cout<<"L=";cin>>L;
        cout<<"G=";cin>>G;
    }
    while(L>=G);
    cout<<endl;


    for(c=0;c<n;c++)
    {
        if(d[c]<L) f[c]=d[c]*d[c]*d[c];
        if(d[c]>=L&&d[c]<=G) f[c]=G-d[c]+1.0f;
        if(d[c]>G) f[c]=1.0f/(d[c]-G);


        cout<<"f["<<c+1<<"]="<<f[c]<<endl;


        S+=f[c];
    }
    cout<<endl;


    Avef=S/(float)n;
    cout<<"Avef="<<Avef<<endl<<endl;


    return 0;
}

 

Някой ще може ли да ми помогне ?

Е ти не знаеш ли какво прави този код ?

  • Автор

Е ти не знаеш ли какво прави този код ?

Не защото от скоро започнах да се занимавам с С++ , ако може да ми кажеш.

Не защото от скоро започнах да се занимавам с С++ , ако може да ми кажеш.

Щом сега започваш - ще ти помогна, но после ще трябва сам да се справяш.

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

#include <iostream>                             /* Директива за включване на файл, включва стандартната библиотека iostream,
                                                             * която съдържа деклараций за "input-output" */
using namespace std;                          /* Оператор указващ, че всички елементи от това пространство от имена
                                                             * могат да се използват в блока без да се задава името на пространството. */
 
int main()                                              /* началото на главната функция - функциятя main е тип int
                                                             * и е дефинирана без аргументи */
{
    int c,n;                                              /* дефиниране на променливите c и n от тип int */
    float d[50],f[50],L,G,S=0.0f,Avef;     /* дефиниране на масивите d, f и променливите L, G, Avef
                                                            * от тип float и константата S */
    
    do                                                    /* оператор за цикъл от типа do-while */
    {
        cout<<"n(6..49)=";cin>>n;           /* отпечатва на екрана n(6..49)= и очаква задаване стойност на n */
    }
    while(n<6||n>49);                            /* проверка на условието n<6 ИЛИ n>49 */
    cout<<endl;                                     /* поставяне на нов ред */
    
    for(c=0;c<n;c++)                             /* оператор за цикъл от типа for - изпълнява се n+1 пъти */
    {
        cout<<"d["<<c+1<<"]=";cin>>d[c]; /* задаване на стойности на елементите в масива d[50]
                                                              * отпечатва на екрана d["стойността на с+1"]= и очаква задаване стойност на d© */
    }
    cout<<endl;                                       /* поставяне на нов ред */
 
    do                                                      /* оператор за цикъл от типа do-while */
    {
        cout<<"L=";cin>>L;                       /* отпечатва на екрана L= и очаква задаване стойност на L */
        cout<<"G=";cin>>G;                     /* отпечатва на екрана G= и очаква задаване стойност на G */
    }
    while(L>=G);                                    /* проверка на условието L>=G - по-голямо или равно */
    cout<<endl;                                      /* поставяне на нов ред */
 
    for(c=0;c<n;c++)                              /* оператор за цикъл от типа for - изпълнява се n+1 пъти */
    {
        if(d[c]<L) f[c]=d[c]*d[c]*d[c];         /* условен оператор - ако елемента d с номер c е число по-малко от L
                                                            * - на елемента с номер c в масива f се присвоява стойност елемента d на трета степен */
        if(d[c]>=L&&d[c]<=G) f[c]=G-d[c]+1.0f; /* условен оператор - ако елемента d с номер c е число в диапазона L -G
                                                                      * - на елемента с номер c в масива f се присвоява стойност G-d[c]+1.0f */
        if(d[c]>G) f[c]=1.0f/(d[c]-G);                   /* условен оператор - ако елемента d с номер c е число по-голямо от G
                                                                      * - на елемента с номер c в масива f се присвоява стойност 1.0f/(d[c]-G */
 
        cout<<"f["<<c+1<<"]=<<f[c]<<endl;     /* отпечатва на екрана f["стойността на с+1]=", стойността на f[c]
                                                                     * и преминава на нов ред */
        S+=f[c];                                                 /* задава на S стойността на f[c] */
    }
    cout<<endl;                                               /* поставяне на нов ред */
 
    Avef=S/(float)n;
    cout<<"Avef="<<Avef<<endl<<endl;        /* отпечатва на екрана Avef=, стойността на Avef
                                                                     * и се премества два реда надолу, оставя един празен ред */
    return 0;                                                    /* прекратяване на изпълнението на функцията */
}

 

 

А това е някаква блок-схема.

 

post-75456-0-29519500-1414059789_thumb.j

Надявам се да ти е станало ясно, за какво става дума.

  • Автор

Благодаря много , но само да попитам в блок -схемата не трябва ли вместо 6 < n > 49  да е така 6 > n > 49.

Благодаря много , но само да попитам в блок -схемата не трябва ли вместо 6 < n > 49  да е така 6 > n > 49.

Да бе, сори - спал съм. 6 < n < 49

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

  • Автор

Да бе, сори - спал съм. 6 < n < 49

 

ОК. Благодаря :)

 

Може ли да ми кажете програма за създаване на блок-схеми.

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

ОК. Благодаря :)

 

Може ли да ми кажете програма за създаване на блок-схеми.

Не се сещам - от сорс код да връща блок-схема.

Ако го направиш на ръка ще стане по-бързо (поне за малки програми)

  • Автор

Не се сещам - от сорс код да връща блок-схема.

Ако го направиш на ръка ще стане по-бързо (поне за малки програми)

Бяха ми казали , че имало програма която освен че можеш  да пишеш сорс код ами и вградена програма за такива схеми.

 

Аз пробвах програма CodeBlocks да компилирам кода, но нещо не става ако може да ми кажеш хубава програма с компилиратор. 

Бяха ми казали , че имало програма която освен че можеш  да пишеш сорс код ами и вградена програма за такива схеми.

 

Аз пробвах програма CodeBlocks да компилирам кода, но нещо не става ако може да ми кажеш хубава програма с компилиратор. 

Dev-C++  или http://www.visualstudio.com/en-US/products/visual-studio-express-vs

 

Аз ползвам вградения в .NET Framework csc.exe, но той е за C#

  • Автор

Dev-C++  или http://www.visualstudio.com/en-US/products/visual-studio-express-vs

 

Аз ползвам вградения в .NET Framework csc.exe, но той е за C#

Пробвах Dev-C++ програмата и работи ОК. Благодаря отново !

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

Пробвах Dev-C++ програмата и работи ОК. Благодаря отново !

Сега като ти тръгна - и IDE-то и самата програмка (твоята) - започна ли да схващаш за какво става дума?

Тази задача ви е дадена, не за да смятате "нещо си", а за да започнете да навлизате в принципите на програмирането.

При теб се получи по обратния ред - първо сорса, после блок-схемата.

 

Винаги е обратното - първо имаш някаква задача за решаване, после си оформяш алгоритъм - как ще се реши. Евентуално блок-схема на този алгоритъм (при простите задачи не е нужно, при по-сложните е добре - за да не се загубиш някъде по пътя). Чак тогава започва писането на сорс, дебъгването и накрая - компилация и старт.

 

Успехи с ученето и най-важното - когато учиш език (независимо дали е немски/френски или С++/Perl/VisualBasic) - трябва да мислиш на този език. А това преди сорса е еднакво за всички езици.

здравейте трябва ми помощ за курсовата ми работа коиято е на тема масиви а не разбирам много от тях 1 курс съм и сичко ми е непознато ако някой знае как се решава ще съм мног благодарен да ми помогне блогодаря предватирелно  . в програма да се въведе едномерен масив с най много 20 реални елемента .С помоща на финкция да се образува два нови масива в които се прехвърлят само полоителните и само отрицателните елементи от входния масив .Резултата от всяка от тези функции трябва да са получения масив и броия на елементите в него .  


здравейте трябва ми помощ за курсовата ми работа коиято е на тема масиви а не разбирам много от тях 1 курс съм и сичко ми е непознато ако някой знае как се решава ще съм мног благодарен да ми помогне блогодаря предватирелно  . в програма да се въведе едномерен масив с най много 20 реални елемента .С помоща на финкция да се образува два нови масива в които се прехвърлят само полоителните и само отрицателните елементи от входния масив .Резултата от всяка от тези функции трябва да са получения масив и броия на елементите в него .  

 

 

изобщо нз как трябва да е блоковата схема  

здравейте трябва ми помощ за курсовата ми работа коиято е на тема масиви а не разбирам много от тях 1 курс съм и сичко ми е непознато ако някой знае как се решава ще съм мног благодарен да ми помогне блогодаря предватирелно  . в програма да се въведе едномерен масив с най много 20 реални елемента .С помоща на финкция да се образува два нови масива в които се прехвърлят само полоителните и само отрицателните елементи от входния масив .Резултата от всяка от тези функции трябва да са получения масив и броия на елементите в него .  

Хайде помисли малко, преди да казваш - нищо не знам.

Представи си  - 20 листчета, номерирани и подредени - от 1 до 20. На гърба им написани произволни числа - реални, положителни и отрицателни. Какво ще направиш, за да ги разделиш на + и - ?

Взимаш едно по едно листчетата, "сравняваш" числото на листчето с 0 и го слагаш на съответната купчина. Всеки път на друг лист си драсваш по една чертичка - вляво за +, вдясно - за  -.

Накрая листчетата са сортирани и количествата се знаят.

 

Можеш ли да си го представиш и да помислиш - как ще изглежда като блок-схема и като програма?

  • 4 седмици по-късно...
  • Автор

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

    for(c=0;c<n;c++)
    {
        cout<<"d["<<c+1<<"]=";cin>>d[c];
    }
    cout<<endl;

Пробвах да вмъкна следното съобщение:

  
  for(c=0;c<n;c++)
    {
        cout<<"Proizvolni stoinosti na d:\n";            
        cout<<"d["<<c+1<<"]=";cin>>d[c];
    }
    cout<<endl;

Но примерно преди да пиша стойности на d. На "n" съм написал числото 9. И трябва на тази част от кода да напиша d: да напиша 9 стойности. 

И ми излиза така:

Proizvolni stoinosti na d:
d[1]=6
Proizvolni stoinosti na d:
d[2]=4
Proizvolni stoinosti na d:
d[3]=8
Proizvolni stoinosti na d:
d[4]=9
Proizvolni stoinosti na d:
d[5]=1
Proizvolni stoinosti na d:
d[6]=5
Proizvolni stoinosti na d:
d[7]=8
Proizvolni stoinosti na d:
d[8]=9
Proizvolni stoinosti na d:
d[9]=3
 
Има ли начин да избегна това съобщение "Proizvolni stoinosti na d:"
 
Ето така да бъде примерно:
Proizvolni stoinosti na d:
d[1]=6
d[2]=4
d[3]=8
 
Ще съм много благодарен ако ми помогнете.

...

Следния код:

 for(c=0;c<n;c++)
    {
        cout<<"Proizvolni stoinosti na d:\n";            
        cout<<"d["<<c+1<<"]=";cin>>d[c];
    }
    cout<<endl;

го модифицирате до:

cout<<"Proizvolni stoinosti na d:\n";  
for(c=0;c<n;c++)
    {          
        cout<<"d["<<c+1<<"]=";cin>>d[c];
    }
    cout<<endl;

Т.е. изкарайте първото съобщение извън цикъла за въвеждане на стойностите. 

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

  • Автор

Благодаря! До сега не знаех че може дадено съобщение да се изкарва извън цикъла и да работи. Сега го научих , благодаря.

Може ли да си кажете мнението за тази блок-схема дали е правилна.

Има вид, това синьото малко не ми допада.

На втория if е по добре за напишеш - L <= d(i) <= G

След if-овете си показал последователни извеждания - ако са така, могат да се покажат с един блок.

От цялата схема не се разбира, че има циклични действия.

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

  • 3 седмици по-късно...

Моля да ми помогнете с блок-схемата на една програма , стигнах до някъде, но не съм много наясно тези неща.Ето я и програмата:
 

#include <stdio.h>
#define  M  50

void main()
{
  int d[M],a[M],b[M],c[M];
  int  i,n,k,r,t;
  double sa,s;



  do
  { printf(" Vavedi broi n = ");
    scanf("%d",&n);
  } while (n<=0 || n>M);



  printf("Vavedi %d chisla:\n",n);

  for(i=0; i<n; i++)
  { printf( " d [%d] = ", i+1);
    scanf("%d",&d[i]);
  }

  k=0;
  r=0;
  t=0;
   printf(" Chisla razlichni ot N");
  for(i=0; i<n; i++)
  {
	  if(d[i]>n)
	  {
		  a[k]=d[i];
		  k++;
	  }
	  else if(d[i]<-n)
	  {
		  b[r]=d[i];
		  r++;
	  }
	      else 
		  {
		  c[t]=d[i];
		  t++;
		  }
  }
  if(k==0)
     printf("\n Niama chisla > %d \n",n);
  else
  {
     printf ("\n REZULTAT: chisla > %d \n",n);
     for(i=0; i<k; i++)
         printf(" %d  ", a[i]);
     printf("\n");
  } 


  if(r==0)
     printf("\n Niama chisla < -%d\n",n);
  else
  {
     printf ("\n REZULTAT: chisla < -%d\n",n);
     for(i=0; i<r; i++)
         printf(" %d  ", b[i]);
     printf("\n");
  } 
  
   if(t==0)
     printf("\n Niama chisla [-%d,%d]\n",n,n);
   else
	{
     printf ("\n REZULTAT:chisla [-%d,%d]\n",n,n);
     for(i=0; i<t; i++)
         printf(" %d  ", c[i]);
     printf("\n");
  } 
  



	s=0;
    for(i=0; i<n; i++)
		s=s+d[i];
   sa=s/n;
   printf("\n Sredno aritmetichnata stoinost e=%f  \n",sa);

}

 

Моля да ми помогнете с блок-схемата на една програма , стигнах до някъде, но не съм много наясно тези неща.Ето я и програмата:

 

#include <stdio.h>
#define  M  50

void main()
{
  int d[M],a[M],b[M],c[M];
  int  i,n,k,r,t;
  double sa,s;



  do
  { printf(" Vavedi broi n = ");
    scanf("%d",&n);
  } while (n<=0 || n>M);



  printf("Vavedi %d chisla:\n",n);

  for(i=0; i<n; i++)
  { printf( " d [%d] = ", i+1);
    scanf("%d",&d[i]);
  }

  k=0;
  r=0;
  t=0;
   printf(" Chisla razlichni ot N");
  for(i=0; i<n; i++)
  {
	  if(d[i]>n)
	  {
		  a[k]=d[i];
		  k++;
	  }
	  else if(d[i]<-n)
	  {
		  b[r]=d[i];
		  r++;
	  }
	      else 
		  {
		  c[t]=d[i];
		  t++;
		  }
  }
  if(k==0)
     printf("\n Niama chisla > %d \n",n);
  else
  {
     printf ("\n REZULTAT: chisla > %d \n",n);
     for(i=0; i<k; i++)
         printf(" %d  ", a[i]);
     printf("\n");
  } 


  if(r==0)
     printf("\n Niama chisla < -%d\n",n);
  else
  {
     printf ("\n REZULTAT: chisla < -%d\n",n);
     for(i=0; i<r; i++)
         printf(" %d  ", b[i]);
     printf("\n");
  } 
  
   if(t==0)
     printf("\n Niama chisla [-%d,%d]\n",n,n);
   else
	{
     printf ("\n REZULTAT:chisla [-%d,%d]\n",n,n);
     for(i=0; i<t; i++)
         printf(" %d  ", c[i]);
     printf("\n");
  } 
  



	s=0;
    for(i=0; i<n; i++)
		s=s+d[i];
   sa=s/n;
   printf("\n Sredno aritmetichnata stoinost e=%f  \n",sa);

}

 

няма ли някой желаещ ?

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

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

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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