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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

Помощ за задачи на C/C++ (merged)

Featured Replies

Здравейте, моля ви да ми помогнете с една задача от която ми зависи заверката по информатика.Мога да се опитам и сама но искам да съм сигурна че ще е вярна :) Съставете програма, която отпечатва последователно на екрана числата от 1 до 20. Използвайте два различни оператора за цикъл. Благодаря ви предварително!!!

  • Отговори 941
  • Прегледи 234,6k
  • Създадено
  • Последен отговор

Вариант със цикъл for

#include <iostream.h>

void main()
{   cout<<"chislata sa: "<<endl;
	 for(int i=1; i<=20; i++)
	 cout<<i;
}
Вариант със цикъл do..while

#include <iostream.h>

void main()
{ int i(0);
	
	 do{ 
		   i++;
		   cout<<i;
			 }while(i>20);
}

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

Здравейте. Ако може някои да даде насоки за решението на следната задача, че съм малко позабравил C++ и ми е пълна мъгла(доста отдавана беше когато го учих и практикувах.. но сега пак ми се налага да направя 1 задача) Ще съм Ви много задължен: Дадени са N точки в равнината T с техните координати (Хi;Yi) , i=1,2,....,N. Координатите да се прочетат от файл, а броят им, който всеки път е различен, да се въведе от клавиатурата. Подредете точките във възходящ ред според разстоянието им до началото на координатната система и получения резултат да се изведе на екрана.

Ето основни насоки: Четеш N чрез "cin"и в един цикъл от 1 до N въвеждаш координатите като вектор от двойки. После в нов вектор намираш разстоянието на всяка точка от началото на координатната система и готово :ph34r:

Друг е въпросът, че трябва да измислиш алгоритъма за намиране на разстояние на точка да началото на координатната система (може да го има в гугъл)

ЕДИТ: Кажи колко е ограничението за N и мога да ти дам насоки за по-бързо решение :P

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

Нямам идея.. така ми е дадена.. може да се губи нещо при преписването... стандартно е до 100 май но и да е по малко няма да е проблем... идеята е важна. Това за CIN за N ми е ясно... после е проблема... как да ги чете от файл? как да го направя този файл.. какво трябва да представлява въобще... числа като матрица ли?

Нямам идея.. така ми е дадена.. може да се губи нещо при преписването... стандартно е до 100 май но и да е по малко няма да е проблем... идеята е важна. Това за CIN за N ми е ясно... после е проблема... как да ги чете от файл? как да го направя този файл.. какво трябва да представлява въобще... числа като матрица ли?

Би трябвало да се прочете като матрица, зависи дали те ти дават файла или сам си го съставяш. Иначе, за да чете от файла правиш пренасочване от файл, утре ще ти напиша как се прави то, ако не се оправиш :speak:

Програма за отпечатване елементите на едномерен целочислен масив, които се показват удвоени нечетни числа. Програма на C++ version 3.1

В случая като пообмислих нещата се оказа че решението ми е почти ясно:

Точките имат координати (Xi,Yi), центъра е (0,0). Дължините са корен от (Xi^2 + Yi^2), след което се записват в масив който после се сортира и извежда на екрана. Дотук всичко е напълно ясно.. но:

Това което ме затруднява и озадачава в случая обаче е:

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

ПП: задачата не е за мен а за един познат който явно не е ходил на лекциите и затова и не знам повече за нея.. можеби нещо се губи по пътя..

Здравейте и добра ви вечер, честита 2008 година и много успехи .... та да се върнем на въпросчето което имам към вас ......... Дали някой може да помогне със курсов проект на C? За какво става на въпрос? Значи, да се направи на C++ , Симулаторно управление на светлинна уредба на кръстовище с 5 улици, като данните за управление да се вземат от файл? Благодарско предварително, и ако може, макар и малко грубо да прозвучи, това ще и трябва за утре вечер!

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

В случая като пообмислих нещата се оказа че решението ми е почти ясно:

Точките имат координати (Xi,Yi), центъра е (0,0). Дължините са корен от (Xi^2 + Yi^2), след което се записват в масив който после се сортира и извежда на екрана. Дотук всичко е напълно ясно.. но:

Това което ме затруднява и озадачава в случая обаче е:

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

ПП: задачата не е за мен а за един познат който явно не е ходил на лекциите и затова и не знам повече за нея.. можеби нещо се губи по пътя..

За пренасочване на задачата към файл тук има много добра статия: http://www.cplusplus.com/doc/tutorial/files.html , където е описано всичко необходимо :)

А иначе самият файл няма никакво значение дали ще го дадат те или сам ще си го направиш :wors:

П.С. Ако искаш оптимално бързо решение въвеждай координатите чрез вектор от двойки и после с една команда sort всичко става готово.

Май ще използвам файл от вида: Х1 Y1 X2 Y2 .... Xn Yn Припомних си от линка (за който ти благодаря) как се четеше от файл, но зациклих на това как да отделя X1 от Y1 в първия ред и т.н. за другите. А за векторите идеята е добра, но и от там непомня почти нищо.. ако може подобен линк и за тях :):)

Отделяш ги като въвеждаш cin>>x1>>x2; вече в съответния цикъл, зависи дали пишеш с масиви или с вектор от двойки.

За векторите има добра статия тук: http://www.cplusplus.com/reference/stl/vector/

Благодаря за помощта... но направих задачата по възможно по опростения вариант тъй като прецених, че познатия за който я правя незнае почти нищо.. камоли да е използвал вектори, класове и т.н.(може даже и да не са ги учили още).

Използвах двумерен масив който го зареждах от файла с :

while (!feof(pFile)) {
		fscanf (pFile, "%d", &x);   
		fscanf (pFile, "%d", &y);
		r = x*x + y*y;				
		arr[br][0]=x;				
		arr[br][1]=y;
		arr[br][2]=r;				
		br++;						
		if(br==N) break; //ako e dostignat broq na zadadenite to4ki priklu4vame s 4eteneto ot faila
	}
и го сортирах после по метода на мехурчето:

for(j=N-1; j>0; j--)
	 for(i=0;i<j;i++)
	  if(arr[i][2]>arr[i+1][2])
	   {
		temp1=arr[i][0];
		temp2=arr[i][1];
		temp3=arr[i][2];
		arr[i][0]=arr[i+1][0];
		arr[i][1]=arr[i+1][1];
		arr[i][2]=arr[i+1][2];
		arr[i+1][0]=temp1;
		arr[i+1][1]=temp2;
		arr[i+1][2]=temp3;
	   }

+ разбира се обичайните най-различни проверки за липса на файл.. на въведен по-голям брой точки и т.н.

Здравейте. Начинаещ програмист съм и се опитвам да си напиша курсовата работа, но се натъкнах на проблем с едната C функция. Ето я и нея:

FILE *fin;

int c,br=0;

if (f!=1){

printf("\nMolq pyrvo izberete fail za obrabotka\n\n\n");

showMenu();

}

if((fin=fopen(path,"r+"))==NULL){

printf("\nFile-a koito ste izbrali da obrabotvate ne syshtestvuva\n");

return 1;

}

while((c=fgetc(fin))!=EOF)

if(c=='{')

{

c=fgetc(fin);

if(c=='\n')

br++;

if (c=='}')

fprintf(fin,"//Broq redove v bloka e %d",br);

br=0;

}

showMenu();

return 0;

Би трябвало да чете един изходен файл на сорс код на C програма (предварително избран от потребителя и записан в масива path) и след края на всеки блок с код да добавя коментар от колко реда се състои блока.

Написана по този начин не прави нищо. Файла се отваря коректно със сигурност защото другите функции работят идеално и ми остава само тази. Всяка помощ е добре дошла.

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

Моля помагайте че е спешно Публикувано изображение

Нужна ми е спешна помощза кусрова задача а понеже не сам много добар в програмирането нямам идея как да си ги направя и бих се радвал ако някои бъде така добър да ми помогне предварителн облагодаря А задачите са : Да се моделират дадения в задачата "реални" обекти с техните свойства, като се използват класове. Да се демонстрира работата на програмата с подходящи тестови примери: · класовете да съдържат поне 1 конструктор и деструктор · декларацията и реализацията на класовете да бъдат отделени в различни файлове, свързани в проект · създаване и унищожаване на обекти от класа чрез вход на данните от клавиатура и/или файл и проверка за коректност на входните данни; · работата на член-функциите на класа; зад.1 Обект: права в равнината, зададена с точка и ъгъл, който сключва с абсцисната ос Функция: пресечната точка с абсцисната ос зад.2 Обект: равнобедрен триъгълник, зададен със страните си. Функция: Лице на триъгълника dev C++ console application и двете задачи са ми нужни предварително мерси

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

Програма на C++ version 3.1

удвоени нечетни са тези които при деление на 4 дават остатък 2. отест обхождаш масива и ако това условие е изпълнено отпечатваш

Някой ще може ли да ми напише следната задача предполагам че не е мн трудна:

"Да се създаде масив от 10 символни низа, въведени от клавиатурата. Да се сортира масива по азбучен ред чрез метода на мехурчето. Да се въведе символ от клавиатурата и да се изведат на екрана всички елементи на масива, съдържащи този символ."

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

#include<iostream.h>

#include<string.h>

#include<stdlib.h>

#include<time.h>

const char n=10;

char mas[100][n];

void main()

{

for(int i=0; i<n; i++)

{

cout<<"Enter element["<<i<<"]=";

cin>>mas;

}

int j;

char x;

srand((unsigned)time(NULL));

cout<<endl;

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

{

for(j=n-1; j>i; j--)

{

if(mas[j-1]>mas[j])

{

x=mas[j-1];

mas[j-1]=mas[j];

mas[j]=x;

}

}

}

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

cout<<mas<<" ";

cout<<endl;

}

Здравейте!

Аз съм студентка първа година в Русенския университет, Инорматика и информационни технологии е специалността ми, но нещо немога да се справя с програмирането. Вече на изпита ме скъсаха и скоро ме очаква поправка. Публикувано изображение Молбата ми е ако е възможно да ми помогнете с няколко задачи. А те са:

1.25.В масивите а1, а2, . . . , аn и b1, b2, . . . , bn се съдържат катетите на n правоъгълни триъгълника. Да се състави програма за намиране номера на триъгълника с най-голямо лице.

1.26.В масивите а1, а2, . . . , аn и b1, b2, . . . , bn се съдържат катетите на n правоъгълни триъгълника. Да се състави програма за намиране номера на триъгълника с най-голям периметър.

1.27.В масивите x1, x2, . . . , xn и y1, y2, . . . , yn се съдържат координатите на n точки. Последователно съединени, точките образуват начупена линия с n -1 отсечки. Да се състави програма за намиране процента на отсечките с дължина под средната в начупената линия.

1.28.Oт клавиатурата се въвеждат координатите на точки, които, последователно свързани, образуват начупена линия. Въвеждането се прекратява, когато дължината на начупената линия стане, по-голяма от зададено число L. Извежда се номера на най-дългата отсечка от начупената линия.

1.29.Да се състави програма за изчисляване на функцията при зададено n

1.23.Даден е едномерният масив а1, а2, . . . , аn. Да се състави програма, която намира най-големия елемент и го замества със сумата на елементите с нечетни индекси.

1.24.В масивите а1, а2, . . . , аn и b1, b2, . . . , bn се съдържат катетите на n правоъгълни триъгълника. Да се състави програма за намиране номера на триъгълника с най-малка хипотенуза.

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

Бе мъча се да реша една задача ма нещо без успех. Ако на някой му се занимава нека ми помогне. Ще съм му много благодарен. Та задачата е следната: Да се състави каталог на наличните в малка библиотека издания, който служу за следните информационни справки: а) получаване на списъка на всички налични книги в библиотеката, излезли от печат през дадената година; б) получаване на списък на всички налични книги в библиотеката от даден автор; в) получаване на всички налични книги в библиотеката от дадено издателство. Каталогът да се съхранява в масив. Да се реализира извеждането на извлечената информация в сортиран по указано поле вид. Доста време се мъчех с един клас, но така и не го доизкосурих. Сега сте вие. Ще съм много благодарен на човека, който ми помогне пръв. :)

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

Desi, ste ti pratq re6enieto na parvata zada4a (1_25). Ostanalite mogat da stanat po podoben na4in:

#include <iostream>

using std::cin;

using std::cout;

#include <cassert>

// 1.25 - В масивите а1, а2, . . . , аn и b1, b2, . . . , bn се съдържат катетите на n правоъгълни триъгълника.

// Да се състави програма за намиране номера на триъгълника с най-голямо лице

// functia za iz4isliavane na liceto na triagalnika po 2 strani - a*b/2

double CalculateArea(float a, float b);

int main()

{

// Vavejdane na broq na triagalnicite

unsigned n;

cout << "Vavedete broq na triagalnicite: ";

cin >> n;

// sazdavane na masivi, sadarjasti stoinostite za katetite

float* pa = new float[n]; // a1,..,an

assert(pa != NULL);

float* pb = new float[n]; // b1,...,bn

assert(pb != NULL);

// initializiraneto im

for(unsigned i=0; i<n; i++){

pa = 0.;

pb = 0.;

}

// masiv, sadarjast stoinostite za licata na triagalnicite

double* pdArea = new double[n];

assert(pdArea != NULL);

for(unsigned i=0; i<n; i++)

pdArea = 0.; // initializirane

// Vavejdane na stoinostite za katetite

cout << "Vavedete stoinostite na katetite\n";

for(unsigned i=0; i<n; i++){

cout << "a" << i+1 << " = ";

cin >> pa;

cout << "b" << i+1 << " = ";

cin >> pb;

cout << "\n";

// Iz4isliavane na liceto na vseki ot triagalnicite i postavqneto mu v masiv

pdArea = (double)((pa*pb)/2.);

}

cout << "\n";

// triagalnika s nai goliamo lice ste bude max element v masiva pdArea

double dMax = pdArea[0]; // maximalnata stoinost za liceto

unsigned uIndex = 0; // indexa na triagalnika s nai goliamo lice

for(unsigned i=0; i<n; i++){

if(pdArea>dMax){

dMax = pdArea;

uIndex = i;

}

}

cout << "Triagalnika s nai-goliamo lice e: " << (uIndex+1)

<< " liceto mu e: " << pa[uIndex] << "*" << pb[uIndex] << "/2 = " << dMax << "\n";

// Osvobojdavane na zadeleneta pamet

delete[] pa; pa = NULL;

delete[] pb; pb = NULL;

delete[] pdArea; pdArea = NULL;

return 0;

}

double CalculateArea(float a, float b)

{

return (double)(a*b/2.);

}

nadqvam se da tie bilo polezno

мерси за задачата, макар че като я четох, малко се разминава с това което съм учила, но каквото стане. мерси отново за помощта :angry:

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

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

Това ли трябва да се направи a[3]={1,2,3}; Разликата е 1-2-3=-4; b[3]={4,5,6}; Разликата е 4-5-6=-7; Сумата е -4-7=-11; ?

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

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

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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