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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

Курсова по С++

Featured Replies

Задачата е следната : За k студента са зададени Фак. №, оценка по физика, оценка по математика и оценка по ПИК. Да се състави алгоритъм за определяне на средния успех по физика на студентите, които са положили успешно изпита по математика.

Давайте идеи.

  • Администратор

какви идеи ти трябват, това е един цикъл, който обхожда масив от структури и в случай че свойстовто .оценка-по-математика в структурате е 3 или повече, добавя към статична (за цикъла) променлива оценката по физика, после дели на броя

нещо такова (пиша на прима виста без ide / компилатор

int count = 0;

int sum = 0;


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

{

   if ( students[i].mat >= 3 )

   {

	  ++count;

	  sum+= students[i].fiz;

	}

}


result = sum / count;

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

  • Автор

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

  • Администратор

Кажи какво не ти е ясно, ще помогнем

Просто питаше за алгоритъм и ти го описах

Знаеш ли какво е структура и как да направиш масив от структири?

Това е нещо подобно, дори е в повече cool.gif

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

ето описанието и : "Програмата използва структура, за да съхранява данните за студенти. Чрез масив се представя група от студенти. От тази група се отпечатват студентите с отличен успех и се изчислява средния успех на групата. Данните се записват във файл."

Махни излишното от сорс кода и си готов

#include <stdio.h>

#include <stdlib.h>

#define MAXN 1000 // максимален размер на тестовия масив

struct student {

char name[32]; // име

int fnum; // факултетен номер

float mark; // среден успех

}arr[MAXN];

void main() {

int n = 0; // брой студенти

int key; // ключ за менюто

int i; // брояч за циклите

FILE *fp; // указател към файл

float average = 0; // среден успех на групата (като сума от всички)

printf("Ako jelaete da pro4etete dannite ot fail vavedete 1, za vavejdane na novi danni vavedete 2: ");

scanf("%i", &key); // четене на ключа за менюто

if( key == 1 ) {

if( ( fp = fopen("test.text", "r") ) == NULL ) { // отваряне на файл

printf("Error opening file!");

exit(1); // при грешка изход от програмата

}

fscanf(fp, "%i", &n); // прочитане на броя на студентите

for(i = 0; i < n; i++) { // четене на данните за студентите

fscanf(fp, "%s%i%f", &arr.name, &arr.fnum, &arr.mark);

}

for(i = 0; i < n; i++) { // изчисляване на сбора на средните успехи

average += ( arr.mark );

if( arr.mark >= 5.50 ) { // отпечатване на отличниците

printf("Studenta %s s fak. nomer %i ima uspeh: %f\n", arr.name, arr.fnum, arr.mark);

}

}

printf("Sredniq uspeh na studentite e: %f\n", average / n);

} else {

while( n <= 0 ) { // въвеждане на брой студенти то въвеждане на положително число или 0 (изход от програмата)

printf("Vavedete broi studenti: ");

scanf("%i", &n);

}

for(i = 0; i < n; i++) { // въвеждане данни за студента

printf("Vavedete ime: ");

scanf("%s", &arr.name);

printf("Vavedete fak. nomer: ");

scanf("%i", &arr.fnum);

printf("Vavedete sreden uspeh: ");

scanf("%f", &arr.mark);

}

for(i = 0; i < n; i++) { // изчисляване сбора на средните успехи и отпечатване на отличниците

average += ( arr.mark );

if( arr.mark >= 5.50 ) {

printf("Studenta %s s fak. nomer %i ima uspeh: %f\n", arr.name, arr.fnum, arr.mark);

}

}

printf("Sredniq uspeh na studentite e: %f\n", average / n);

if( ( fp = fopen("test.text", "w") ) == NULL ) { // отваряне на файл за запис

printf("Error opening file!");

exit(2); // изход при грешка

}

fprintf(fp, "%i\n", n); // записване на броя на студентите във файла

for(i = 0; i < n; i++) { // записване на данните им

fprintf(fp, "%s\n%i %f\n", arr.name, arr.fnum, arr.mark);

}

}

fclose(fp); // затваряне на файла

}

Надявам се да съм помогнал :)

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

  • Администратор

slayerist

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

main не е void. Типа на функцията е int и тя връща стойност към операционната система ( 0 при успешно изпълнение )

Освен това бих препоръчвал кода за key == 1 и key == 2 да се отдели в отделни функции.

Добавете отговор

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

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

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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