Задача по програмиране ( Паскал )

Взаимопомощ, полезна информация и всичко, извън темата на останалите секции
Потребителски аватар
Freakylol
Мнения: 927
Регистриран на: Нед 10 юли 2011 16:55
Автомобил:
Двигател: asz++
Местоположение: Русе

Задача по програмиране ( Паскал )

Мнениеот Freakylol » Вто 13 ное 2012 23:12


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


Всякаква помощ ще ми е от полза, а ако някой реши да напише програмата или направи блок схемата ще съм му още по благодарен :)




Потребителски аватар
hooligans
Мнения: 18732
Регистриран на: Пет 30 мар 2007 19:22
Автомобил: VW Polo Harlekin 1996
Двигател: 1.6 AEE
Местоположение: София

Re: Задача по програмиране ( Паскал )

Мнениеот hooligans » Вто 13 ное 2012 23:13


Нямаше ли такава тема преди седмица две?


Потребителски аватар
LILO&STICH
ябълката на раздора
Мнения: 13068
Регистриран на: Сря 17 авг 2005 15:15
Автомобил:
Двигател:
Местоположение: София

Re: Задача по програмиране ( Паскал )

Мнениеот LILO&STICH » Вто 13 ное 2012 23:15


hooligans написа:Нямаше ли такава тема преди седмица две?

остаряла е явно mhihi


Потребителски аватар
Freakylol
Мнения: 927
Регистриран на: Нед 10 юли 2011 16:55
Автомобил:
Двигател: asz++
Местоположение: Русе

Re: Задача по програмиране ( Паскал )

Мнениеот Freakylol » Вто 13 ное 2012 23:53


mhihi имаше да, но не със същата задача, а и както не същия човек ;)


Потребителски аватар
apa6o
Мнения: 1101
Регистриран на: Пон 27 ное 2006 9:56
Автомобил: Skoda Octavia 1Z
Двигател: BKD
Местоположение: Перник

Re: Задача по програмиране ( Паскал )

Мнениеот apa6o » Сря 14 ное 2012 0:03


Добре де, стана ми интересно - аз например уча нещо свързано с програмиране в университета, последното домашно, което предадох беше около 600 реда код, при това качествен, при това графика на OpenGL, писана на C++, всичко си пиша самичък и не чакам за помощ, освен от гугъла...
Всички колеги, които се мъчите тука с някакви структури на Паскал :shock Това животно е толкоз мъртво, че не знам и защо го предават още, та я кажете, защо изобщо се мъчите с тия компютри, пък накрая чакате и някой да ви "помогне", а.к.а. да ви свърши работата?


Потребителски аватар
Freakylol
Мнения: 927
Регистриран на: Нед 10 юли 2011 16:55
Автомобил:
Двигател: asz++
Местоположение: Русе

Re: Задача по програмиране ( Паскал )

Мнениеот Freakylol » Сря 14 ное 2012 0:13


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


Потребителски аватар
milmar
Мнения: 4935
Регистриран на: Съб 22 мар 2008 2:57
Автомобил: Passat B4 and B6 Variant
Двигател: 1Z and CBDC
Местоположение: Русе

Re: Задача по програмиране ( Паскал )

Мнениеот milmar » Сря 14 ное 2012 0:20


apa6o написа:...Това животно е толкоз мъртво, че не знам и защо го предават още...

Ами те сигурно и асемблер преподават, по мое време пишехме контролери дори директно на машинен код, но знаехме какво правим, за разлика от много студенти сега. Езиците на по-ниско ниво все още имат приложение, спокойно , макар че не стават за рисуване :).
Към автора на темата: седни си напиши програмата, няма да загубиш нищо, най-малкото не и това, което още не си намерил :wink: !


Потребителски аватар
apa6o
Мнения: 1101
Регистриран на: Пон 27 ное 2006 9:56
Автомобил: Skoda Octavia 1Z
Двигател: BKD
Местоположение: Перник

Re: Задача по програмиране ( Паскал )

Мнениеот apa6o » Сря 14 ное 2012 0:27


milmar написа:
apa6o написа:...Това животно е толкоз мъртво, че не знам и защо го предават още...

Ами те сигурно и асемблер преподават, по мое време пишехме контролери дори директно на машинен код, но знаехме какво правим. Езиците на по-ниско ниво все още имат приложение, спокойно , макар че не стават за рисуване :).
Към автора на темата: седни си напиши програмата, няма да загубиш нищо, най-малкото не и това, което още не си намерил :wink: !

Асемблер се учи и до ден днешен, има и защо да се учи, но Pascal е учебен език от ниско ниво, практически никога не е бил замислян с идеята да се пише нещо сериозно на него, затова е странно да те учат на него, освен ако не си ученик в 8-ми клас :?
В момента език на "ниско" ниво, който си струва човек да знае, това е С, защото има полезен синтаксис (C++, Java и т.н.), същевременно пък се води assembler++, дава шанс да се създават реални приложения, при това бързи и ефективни. Аз също съм учил Паскал, но бъкел не помня от него, в момента уча C++, Java, DrRacket, Haskell, като не пожелах да се запиша на изборен курс за assembler. Не се имам за "голям", нито за "програмист", въпроса е, че в българската образователна система има някои много странни казуси :)


Потребителски аватар
milmar
Мнения: 4935
Регистриран на: Съб 22 мар 2008 2:57
Автомобил: Passat B4 and B6 Variant
Двигател: 1Z and CBDC
Местоположение: Русе

Re: Задача по програмиране ( Паскал )

Мнениеот milmar » Сря 14 ное 2012 0:33


:да:
Съгласен съм!
Аз пък въобще не съм програмист, може би само любител :) ...
Но ти прозвуча твърде обезсърчаващо за колегата :lol: !


Потребителски аватар
apa6o
Мнения: 1101
Регистриран на: Пон 27 ное 2006 9:56
Автомобил: Skoda Octavia 1Z
Двигател: BKD
Местоположение: Перник

Re: Задача по програмиране ( Паскал )

Мнениеот apa6o » Сря 14 ное 2012 0:39


http://pascal-programming.info/lesson11.php
Трябва ти структура, която да съдържа данните за един студент, тоест име, ЕГН, Фак. №, 10 оценки и среден успех, името ще ти е стринг, ЕГН, №-интиджъри, среден успех - реална променлива, оценките - масив от реални променливи.
После правиш масив от структури и си готов с групата. Среден успех - въртиш с един for цикъл масива от студенти, като за всеки студент среден успех=(сумата от оценките)/10, сумата от оценките ти се получава с още един for цикъл.
Последната част - if(student[i].ocenka[2]>=3) {sum=sum+student[i].ocenka[0]; counter=counter+1;}
Не знам дали нагодих синтаксиса, но идеята е, че ако оценката с индекс 2, тоест третата, понеже индексирането почва от 0, е поне 3, значи прибавяме успеха на студента към сумата и увеличаваме брояча на студентите, накрая като резултат връщаме
-ако counter>0 : sum/counter
-0

Сега помогнах ли ти :?:


Потребителски аватар
ak_47
Мнения: 190
Регистриран на: Пон 07 яну 2008 9:02
Автомобил:
Двигател:
Местоположение: София

Re: Задача по програмиране ( Паскал )

Мнениеот ak_47 » Сря 14 ное 2012 10:09


Идеята да се учи Паскал е, че е много добре структуриран процедурен език, и е много подходящ за обучение и въведение в програмирането. Много естествено се описват на Паскал всякакви алгоритми, плюс данните към тях и т.н. В днешно време повече трябва да се гледа на него като на "мета" език. В практиката никъде не се ползва.
Проблема, е че тези дето го преподават, това не го знаят, и съответно не го преподават с идеята той да е въведение в основите на процедурно-ориентираното програмиране, а карат студентите/учениците да го зубрят едва ли не. С-то е доста по-трудно за начинаещ, но ако си минал Паскал, е друга бира. Много по-лесно се учи.
Ама не им се обяснява като хората, и не разбират какъв е смисъла от програмирането, особено в специалностите, които са далеч от информатиката.
А за асемблера - никой днес също не пише на асемблер - компилаторите обикновено генерират страшно оптимизиран код, който ако вече е нужно, се дооптимизира "на ръка". Но въпреки това е добре да се учи, за да знаеш аджеба какво става реално с кода. Най-вероятно никога няма да се наложи на един програмист( дори и на embedded ) да програмира на асемблер, обаче умението да програмираш на асемблер означава че разбираш как работи машината. :012:


Потребителски аватар
milmar
Мнения: 4935
Регистриран на: Съб 22 мар 2008 2:57
Автомобил: Passat B4 and B6 Variant
Двигател: 1Z and CBDC
Местоположение: Русе

Re: Задача по програмиране ( Паскал )

Мнениеот milmar » Сря 14 ное 2012 10:19


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


Потребителски аватар
VWGT
Мнения: 6247
Регистриран на: Пет 09 дек 2005 10:09
Автомобил:
Двигател:
Местоположение: София

Re: Задача по програмиране ( Паскал )

Мнениеот VWGT » Сря 14 ное 2012 10:46


ak_47 написа::

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


Потребителски аватар
milmar
Мнения: 4935
Регистриран на: Съб 22 мар 2008 2:57
Автомобил: Passat B4 and B6 Variant
Двигател: 1Z and CBDC
Местоположение: Русе

Re: Задача по програмиране ( Паскал )

Мнениеот milmar » Сря 14 ное 2012 11:04


VWGT написа:.... че програмиране само в училище не се учи


Ей това е истината, аз лично го изпитвам на гърба си в момента. Като студент знаех всичко, което сме учили по C, по Асемблер, Паскал, но не съм го ползвал реално. Сега, от скоро, след толкова години реших че ми трябва и взех да уча отново, обаче няма нищо :dummy: , всичко от нула.

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


Потребителски аватар
Freakylol
Мнения: 927
Регистриран на: Нед 10 юли 2011 16:55
Автомобил:
Двигател: asz++
Местоположение: Русе

Re: Задача по програмиране ( Паскал )

Мнениеот Freakylol » Пон 26 ное 2012 18:40


apa6o написа:http://pascal-programming.info/lesson11.php
Трябва ти структура, която да съдържа данните за един студент, тоест име, ЕГН, Фак. №, 10 оценки и среден успех, името ще ти е стринг, ЕГН, №-интиджъри, среден успех - реална променлива, оценките - масив от реални променливи.
После правиш масив от структури и си готов с групата. Среден успех - въртиш с един for цикъл масива от студенти, като за всеки студент среден успех=(сумата от оценките)/10, сумата от оценките ти се получава с още един for цикъл.
Последната част - if(student[i].ocenka[2]>=3) {sum=sum+student[i].ocenka[0]; counter=counter+1;}
Не знам дали нагодих синтаксиса, но идеята е, че ако оценката с индекс 2, тоест третата, понеже индексирането почва от 0, е поне 3, значи прибавяме успеха на студента към сумата и увеличаваме брояча на студентите, накрая като резултат връщаме
-ако counter>0 : sum/counter
-0

Сега помогнах ли ти :?:



Добре да кажем, че хващам идеята ти и схващам как да го направя, но някак си не мога да го структурирам.
За реалния масив - оценката ще го означа a[10] или бъркам?

program edikakvosi
var a:array[1..10] of real;
ime: string;
egn, faknom: integer;
sum, sruspeh: real;
begin

... и до тука не знам с кое да започна, не мога да осмисля как да направя алгоритъма за намиране на сумата от оценките, sum:= sum + a[i] ?

for i:=1 to n do
begin


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



Върни се в “ОФФ-Топик - други”

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 50 госта