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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

Помощ за C++ задача

Featured Replies

Здравейте, имам затруднения в решението на една задача на C++

 

Данни имат следната структура: Име на дете, ЕГН, Пол, Възраст, на която е правено последното измерване за тегло. Да се състави програма която въвежда данни за деца и извежда цялата информация , и сортира данните в системата по име на дете.

 

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

Здравейте, имам затруднения в решението на една задача на C++

Данни имат следната структура: Име на дете, ЕГН, Пол, Възраст, на която е правено последното измерване за тегло. Да се състави програма която въвежда данни за деца и извежда цялата информация , и сортира данните в системата по име на дете.

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

Ние ще бъдем благодарни ако все пак приложите направеното досега по въпроса. Не друго, но сме малко лайкове и ни трябва помощ да видим с какви програмни entity-та ще трябва да се борави. Все пак става дума за език с донякъде контекстно - зависима граматика и всяка помощ ще ни е полезна :).

Да, голяма проблемация сега стана с тоя третия пол дето го няма предвиден в ЕГН-то

Ще му се намери решение - примерно няма да се гледа само четността на последната цифра, а остатъка на сумата му с числото от каталога при делене на 3. 1-ца за момиче, 2-ка за момче и 0-ла за друго :). И така 10 пола може да покрием (теоретично, разбира се ).

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

  • Автор

Нищо особено, нормална задача на C++ със структури, но точно това винаги ми е било трудно.. а ми трябва за утре попринцип, само с тази задача не мога да се справя ;/

здравейте,

имам следната задача:

В таблица се съдържат имената ЕГН -та и оценките по 10 дисциплини на студенти в дадена група. Да се състави програма която извежда на екран списък, съдържащи имената общия успех на студенти,които имат поне една отлична оценкa Благодаря предварително за отделеното време

здравейте,

имам следната задача:

В таблица се съдържат имената ЕГН -та и оценките по 10 дисциплини на студенти в дадена група. Да се състави програма която извежда на екран списък, съдържащи имената общия успех на студенти,които имат поне една отлична оценкa Благодаря предварително за отделеното време

 

1. Съставяш тип структура, с данни - име стринг, ЕГН цяло число, и още  11 реални числа тип float за оценките и общия успех.

2. Декларираш масив от структури, от типа съставен в точка 1, с толкова елемента, колкото са студентите в групата

3. Организираш цикъл в цикъл за въвеждане на данните, така щото вътрешния цикъл да обхожда данните на един студент, а външния да обхожда студентите.

4. Организираш цикъл в цикъл, за изчисляване на общия успех като средно аритметично от 10те въведени оценки и да го записва в съответното място за общ успех. Вътрешния цикъл да изчислява успеха като средно аритметично и да го записва, а външния да обхожда студентите.

5. Организираш цикъл в цикъл за извеждане на студентите с поне една отлична оценка, така че вътрешния цикъл да сравнява една по една оценките с числото 6, (или дали е в интервала между 5.5 и 6, ако това се иска) и ако има такава оценка, да извежда на екрана данните на съответния студент. А външния цикъл да обхожда студентите.

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

 ЕГН цяло число

и то 64 битово цяло число. :D

1. Съставяш тип структура, с данни - име стринг, ЕГН цяло число, и още  11 реални числа тип float за оценките и общия успех.

2. Декларираш масив от структури, от типа съставен в точка 1, с толкова елемента, колкото са студентите в групата

3. Организираш цикъл в цикъл за въвеждане на данните, така щото вътрешния цикъл да обхожда данните на един студент, а външния да обхожда студентите.

4. Организираш цикъл в цикъл, за изчисляване на общия успех като средно аритметично от 10те въведени оценки и да го записва в съответното място за общ успех. Вътрешния цикъл да изчислява успеха като средно аритметично и да го записва, а външния да обхожда студентите.

5. Организираш цикъл в цикъл за извеждане на студентите с поне една отлична оценка, така че вътрешния цикъл да сравнява една по една оценките с числото 6, (или дали е в интервала между 5.5 и 6, ако това се иска) и ако има такава оценка, да извежда на екрана данните на съответния студент. А външния цикъл да обхожда студентите.

здравейте, дали е възможно да го разпишите:(

здравейте, дали е възможно да го разпишите :(

 

Не е прието. Опитай да направиш нещо и го публикувай, колегите ще ти помогнат.

 

ЕГНто трябва да е 64 битово цяло число, както ме поправи колегата.

Не е прието. Опитай да направиш нещо и го публикувай, колегите ще ти помогнат.

 

ЕГНто трябва да е 64 битово цяло число, както ме поправи колегата.

 

А най-добре string, защото има ЕГН-та, които почват с нула.

имената ... да са масиви от символи, а не стрингове

защото?
#include <iostream>
#include <string>

const int gradesCount = 10;
const int studentsCount = 20;

struct Student {
	string name;
	string EGN;
	float grades[10];	
};

int main() {
	Student students[studentsCount];
	
/// ... въвеждане на данните за всеки студент ...

	for (int i = 0; i < studentsCount; i++) { // за всеки студент
		bool hasExcellentMark = false;
		float gradesSum = 0.0f;
		float currentGrade = 0.0f;
		
		for (int j = 0; j < gradesCount; j++) { // за всяка оценка
			currentGrade = students[i].grades[j];
			if (currentGrade >= 5.50) {
				hasExcellentMark = true;
			}
			gradesSum += currentGrade;				
		}
		
		if (hasExcellentMark) { // ако има отлична оценка го извеждаме на екрана
			cout << "Name: " << students[i].name << 
			     << "GPA: " << gradesSum / gradesCount << endl; // приемаме, че сборът на оценките няма как да е 0.
		}
	}
	
	return 0;
}

Ето едно "баламско" решение. Пропуснал съм въвеждането на данните, защото то се прави със същия цикъл.

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

Здравейте на всички.1 курс съм по АИУТ и имам  курсова по ПИК, но ми е трудно да я направя,ще бъда благодарен ако ми помогнете.Задачата е

ВЪВЕДЕТЕ ПРОИЗВОЛНИ РЕАЛНИ СТОЙНОСТИ ЗА ЕДНОМЕРНИЯ МАСИВ AL(M),БРОЯТ М СЕ ВЪВЕЖДА ПРЕДВАРИТЕЛНО И Е 10<М>50.

НАМЕРЕТЕ МИНИМАЛНИЯ И МАКСИМАЛНИЯ  ЕЛЕМЕНТИ И ТЕХНИТЕ ИНДЕКСИ В МАСИВА.НА ЕЛЕМЕНТИТЕ ОТ МАСИВА AL ИЗЧЕСЛЕТЕ,

-СРЕДНОТО-АРЕТМАТИЧНАТА ИМ СТОЙНОСТ,АКО ИНДЕКСА НА MIN E СЛЕД MAX В МАСИВА .

-СУМАТА НА КВАДРАТИТЕ ИМ, АКО ИНДЕКСА НА MIN Е СЛЕД MAX В МАСИВА.

-СЪЗДАЙТЕ НОВ ЕДНОМЕРЕН МАСИВ POL,СЪДЪРЖАЩ САМО ТЕЗИ ЕЛЕМЕНТИ ОТ  AL,КОЙТО СЕ НАМИРА НА НЕЧЕТНИ ИНДЕКСИ И СА ПОЛОЖИТЕЛНИ.

ОТПЕЧАТАЙ МАСИВИТЕ,ВХОДНИЯ И ПОЛУЧЕНИЯ. ;(

Здравейте на всички.1 курс съм по АИУТ и имам  курсова по ПИК, но ми е трудно да я направя,ще бъда благодарен ако ми помогнете.Задачата е

ВЪВЕДЕТЕ ПРОИЗВОЛНИ РЕАЛНИ СТОЙНОСТИ ЗА ЕДНОМЕРНИЯ МАСИВ AL(M),БРОЯТ М СЕ ВЪВЕЖДА ПРЕДВАРИТЕЛНО И Е 10<М<50.

НАМЕРЕТЕ МИНИМАЛНИЯ И МАКСИМАЛНИЯ  ЕЛЕМЕНТИ И ТЕХНИТЕ ИНДЕКСИ В МАСИВА.НА ЕЛЕМЕНТИТЕ ОТ МАСИВА AL ИЗЧЕСЛЕТЕ,

-СРЕДНОТО-АРЕТМАТИЧНАТА ИМ СТОЙНОСТ,АКО ИНДЕКСА НА MIN E ПРЕДИ MAX .

-СУМАТА НА КВАДРАТИТЕ ИМ, АКО ИНДЕКСА НА MIN Е СЛЕД MAX В МАСИВА.

-СЪЗДАЙТЕ НОВ ЕДНОМЕРЕН МАСИВ POL,СЪДЪРЖАЩ САМО ТЕЗИ ЕЛЕМЕНТИ ОТ  AL,КОЙТО СЕ НАМИРА НА НЕЧЕТНИ ИНДЕКСИ И СА ПОЛОЖИТЕЛНИ.

ОТПЕЧАТАЙ МАСИВИТЕ,ВХОДНИЯ И ПОЛУЧЕНИЯ.

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

Туй 10<M>50 не е логично. Може би е 10<M<50

 

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

мЕРСИ КОЛЕГА МАЛКО СЪМ ГО ОБЪРКАЛ.мОЖЕШ ЛИ МИ ПОМОГНА.


Малко несъм го видял,оправих го.Можеш ли да ми помогнеш

Можем да ти помогнем, но не очаквай да ти напишем курсовата.

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

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

#include <iostream>

void main()
{
	int m = 0;
	static bool warning = false;
	do
	{
		if (warning)
			std::cout << "You entered a bad value. Give it another go." << std::endl;
		std::cout << "Enter a value for m, where 10 < m < 50. " << std::endl;
		std::cout << "m = ";
		std::cin >> m;
		warning = true;
	} while ( !(m > 10 && m < 50) );

	double * values = new double[m];

	std::cout << "Your array of " << m << " elements is created. Please enter a value for each element:" << std::endl;

	int imin = -1, imax = -1;
	for (int i = 0; i < m; i++)
	{
		std::cout << "Element " << i << " = ";
		std::cin >> values[i];

		if (imin >= 0)
		{
			if (values[i] < values[imin]) imin = i;
		} 
		else imin = i;

		if (imax >= 0)
		{
			if (values[i] > values[imax]) imax = i;
		}
		else imax = i;
	}

	if (imin < imax)
	{
		double average = (values[imin] + values[imax]) / 2;
		std::cout << "The average of " << values[imin] << " and " << values[imax] << " is " << average << std::endl;
	}
	else if (imin > imax)
	{
		double ssum = values[imin] * values[imin] + values[imax] * values[imax];
		std::cout << "The sum of the squares of " << values[imin] << " and " << values[imax] << " is " << ssum << std::endl;
	}
	
	double * pol = new double[m / 2 + 1];
	int polsize = 0;
	for (int i = 1; i < m; i += 2)
	{
		if (values[i] > 0)
		{
			pol[polsize] = values[i];
			polsize++;
		}
	}

	std::cout << "AL:" << std::endl;
	for (int i = 0; i < m; i++)
	{
		std::cout << "Element " << i << ": " << values[i] << std::endl;
	}

	std::cout << "POL:" << std::endl;
	for (int i = 0; i < polsize; i++)
	{
		std::cout << "Element " << i << ": " << pol[i] << std::endl;
	}

	delete values, pol;
}

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

само да попитам като я тестам ми изписва

Compiling...
go6oo.cpp
C:\MSDev98\Bin\go6oo.cpp(53) : error C2374: 'i' : redefinition; multiple initialization
        C:\MSDev98\Bin\go6oo.cpp(22) : see declaration of 'i'
C:\MSDev98\Bin\go6oo.cpp(63) : error C2374: 'i' : redefinition; multiple initialization
        C:\MSDev98\Bin\go6oo.cpp(22) : see declaration of 'i'
C:\MSDev98\Bin\go6oo.cpp(69) : error C2374: 'i' : redefinition; multiple initialization
        C:\MSDev98\Bin\go6oo.cpp(22) : see declaration of 'i'
Error executing cl.exe.
 
go6oo.exe - 3 error(s), 0 warning(s)

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

Декларираш променливата "i" на повече от едно място, в една и съща област на видимост КОЛЕГА КАЗАХА ЧЕ ТВА Е ГРЕШКАТА АМА КАК ДА Я ОПРАВЯ

Ined от университета,на нея работим.Направиха ми я програмата и по др начин и Там изписва пък compiling executing cl.exe. 44.exe-1 error(s),0 waring(s)

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

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

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

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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