Log in

View Full Version : Програма "С++",някой разбира ли от нея???



assassin's
14-02-2011, 23:17
Към колегите имащи опит в програмирането,някой има ли представа как да програмира,ще бъда благодарен на всеки който помогне!!!

morfius
14-02-2011, 23:25
Това съм го забравил вече, навремето се пробвах ама не ме огря... но си мисля, че е редно да дадеш заданието, та който отбира да знае какво се търси в задачата.

assassin's
14-02-2011, 23:29
Ето я и задачата:- В двумерен масив са зададени оценки(редовете са студенти,стълбовете предмети).Едномерен масив запълнете със средните успехи на студентите.Изведете масива и номера на студента,с максимален среден успех!

assassin's
15-02-2011, 17:12
Никой ли неможе да помогне? :throw:

Ladjov
15-02-2011, 17:24
http://tu-materiali.com/static/lekcii/13.php само с лекции мога да помогна и някакви други подобни материали , но ако нищо не разбираш незнам колко ще ти свършат работа .

morfius
15-02-2011, 17:26
Някога ги решавахме такива... освен да погледна дали нямам случайно същата в архивите.
Но кога и как ще имам време да ги ровя, не гарантирам...
А и при наличието на компютри дори в телефоните, какъв е проблема да научите 20 команди и 10 променливи... не винаги ще има от кого да се препише?
На времето решавах такива наред защото имах колеги дето пипаха комп. само в клуб или в кабинета (ако се доредят до един от 4 те).

Alfa Pilot
16-02-2011, 16:20
int main()
{
int a[4][3] = {{3,4,4},
{5,5,5},
{6,6,5},
{2,3,4}};
float s[4];
int m;

for (int i=0;i<4;i++)
{
s[i] = 0;
for (int k=0;k<3;k++)
{
s[i] = s[i] + a[i][k];
}

s[i] = s[i]/3;
}

m = 0;
for (int i=0;i<4;i++)
{
if (s[i] > s[m])
m = i;

printf ("Student %d, sreden uspeh %2.1f\n", i+1, s[i]);
}

printf ("Student %d, ima maksimalen uspeh", m+1);
return 0;
}


В ТУто още ли карате на Turbo Pascal btw. ;-)

crocodil
16-02-2011, 16:27
Ако има повече от един студент с максимален успех?

Alfa Pilot
16-02-2011, 16:36
Ако има повече от един студент с максимален успех?

Добър въпрос, но при така зададеното условие "Изведете масива и номера на студента", няма какво да се направи. Същото вероятно ще пита и асистента :).

crocodil
16-02-2011, 16:39
Също е добре и броя на дисциплините и студентите да се задават от едно място, като константа или променлива, а не да се хардкодват навсякъде.

Alfa Pilot
16-02-2011, 17:10
Добре е ама ще изглежда много професионално, пък и това също не е указано в условието.

zloster
16-02-2011, 17:21
int main()
{
int a[4][3] = {{3,4,4},
{5,5,5},
{6,6,5},
{2,3,4}};
float s[4];
int m;

for (int i=0;i<4;i++)
{
s[i] = 0;
for (int k=0;k<3;k++)
{
s[i] = s[i] + a[i][k];
}

s[i] = s[i]/3;
}

m = 0;
for (int i=0;i<4;i++)
{
if (s[i] > s[m])
m = i;

printf ("Student %d, sreden uspeh %2.1f\n", i+1, s[i]);
}

printf ("Student %d, ima maksimalen uspeh", m+1);
return 0;
}
В ТУто още ли карате на Turbo Pascal btw. ;-)

Тази програма е чисто C. Eто версия, която ползва нещичко от C++.

#include <iostream> //input output library
using namespace std;
const int MARKS = 3;

int main ()
{
float marks[5][MARKS]= {
{4.5, 3.5, 5.5},
{3, 3, 3},
{4, 4, 4},
{5, 5, 6},
{6, 3, 4}
}; //Five students and three marks
float averageMarks[5];

for (int i=0; i<5;i++) {
float averageMark = 0;
for (int j=0; j<MARKS; j++) {
averageMark += marks[i][j];
}
averageMarks[i] = averageMark / MARKS;
}

for (int i=0; i<5; i++) { //Displaying the array
cout << "Student " << i << " average mark:" << averageMarks[i] << endl;
}

//Find and display the student with greatest average mark
int studentIndex = max_element(&averageMarks[0], &averageMarks[4])-&averageMarks[0]; //some pointer arithmetic
cout << "Student index:" << studentIndex << " ;Student averageMark:" << averageMarks[studentIndex] << endl;
return 0;
}

float* max_element ( float* first, float* last) //Excluding the last element of the array
{
float* largest = first;
if (first==last) return 0;
while (++first!=last)
if (*largest < *first)
largest=first;
return largest;
}Използвани ресурси:


http://www.cplusplus.com/reference/ - документация на езика C++;
http://codepad.org/ - това e online компилатор/интерпетатор и дава резултата от изпълнението на програмката.

Alfa Pilot
16-02-2011, 18:02
...

#include <iostream> //input output library
using namespace std;
const int MARKS = 3;

int main ()
{
float marks[5][MARKS]= {
{4.5, 3.5, 5.5},
{3, 3, 3},
{4, 4, 4},
{5, 5, 6},
{6, 3, 4}
}; //Five students and three marks
float averageMarks[5];

for (int i=0; i<5;i++) {
float averageMark = 0;
for (int j=0; j<MARKS; j++) {
averageMark += marks[i][j];
}
averageMarks[i] = averageMark / MARKS;
}

for (int i=0; i<5; i++) { //Displaying the array
cout << "Student " << i << " average mark:" << averageMarks[i] << endl;
}

//Find and display the student with greatest average mark
int studentIndex = max_element(&averageMarks[0], &averageMarks[4])-&averageMarks[0]; //some pointer arithmetic
cout << "Student index:" << studentIndex << " ;Student averageMark:" << averageMarks[studentIndex] << endl;
return 0;
}

float* max_element ( float* first, float* last) //Excluding the last element of the array
{
float* largest = first;
if (first==last) return 0;
while (++first!=last)
if (*largest < *first)
largest=first;
return largest;
}Използвани ресурси:


http://www.cplusplus.com/reference/ - документация на езика C++;
http://codepad.org/ - това e online компилатор/интерпетатор и дава резултата от изпълнението на програмката.


Така няма да се компилира на повечето компилатори

assassin's
16-02-2011, 18:22
Благодаря ви колеги от името на жената,ще трябва да се черпи!Само да уточня тя учи във ВТУ-"Т.Каблешков",още един път благодарности!!!

Ladjov
16-02-2011, 20:39
В ТУто още ли карате на Turbo Pascal btw. ;-)

По скоро правилният термин е влачиме :cold: Сега и за Желев остава да питаш :grin:

zloster
17-02-2011, 00:15
Така няма да се компилира на повечето компилатори
На оригиналния синтаксис на C++ това е невалиден код и няма да стане. Този код съответства на изискванията на ANSI C++. Повечето компилатори изискват да се пускат с допълнителна опция, за да се включи ANSI C++ поддръжката (ако я имат). Без нея много често са активни различни допълнения и разширения на езика добавени от разработчика на компилатора, които не са съвместими със стандарта.