PDA

View Full Version : Програмиране и Използване на Компютри



karrigan
05-22-2013, 13:38
Искам да попитам дали някои може да ми помогне със следната курсова задача по ПИК... Не съм сигурен дали това е точната тема ноо..реших да опитам .. Мерси предварително :)


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

Chacho
05-22-2013, 13:42
Каква точно помощ ти трябва?

karrigan
05-22-2013, 13:47
Ем чесно да си кажа аз изобщо не разбирам от програмиране ... и се надявам някой да ми помогне всмисъл да ми я напише :)

Chacho
05-22-2013, 13:49
За кога? Уикенда ще имам време.

karrigan
05-22-2013, 13:51
ем ако имаш време :)... по принцип ми е за вторник .... Ще съм ти много благодарен

JDeel
05-22-2013, 14:03
Леле как ви мъчат с това C, никак не ви завиждам. Това е най-нескопосания и тегав език дето ми се е налагало да разучавам и не знам как някой дето хал хабер си няма от програмиране може да се научи да програмира на това несъвършенство. То е все едно да вкараш костенурка в самолет и да кажеш "пилотирай!". С тази разлика че в самолета всъщност има логика.

Може би искам само да кажа - ако някой се чувства глупав за дето не схваща C, не е от умствения багаж, от езика си е :)

MrCreeper
05-22-2013, 22:26
Леле как ви мъчат с това C, никак не ви завиждам. Това е най-нескопосания и тегав език дето ми се е налагало да разучавам и не знам как някой дето хал хабер си няма от програмиране може да се научи да програмира на това несъвършенство. То е все едно да вкараш костенурка в самолет и да кажеш "пилотирай!". С тази разлика че в самолета всъщност има логика.

Може би искам само да кажа - ако някой се чувства глупав за дето не схваща C, не е от умствения багаж, от езика си е :)

Няма нищо сложно и нескопосано в C/C++
Попаднеш ли на правилен преподавател, които си разбира от работата и не преподава през пръсти, eзикът се научава супер лесно :)

Auriss
05-22-2013, 23:24
К'во му е на C ? Синтаксисът ли е някакъв объркващ ? Смис. не разбирам какво общо има *програмирането* като умение с езика ? о0

MaGuSs
05-22-2013, 23:28
Леле как ви мъчат с това C, никак не ви завиждам. Това е най-нескопосания и тегав език дето ми се е налагало да разучавам и не знам как някой дето хал хабер си няма от програмиране може да се научи да програмира на това несъвършенство. То е все едно да вкараш костенурка в самолет и да кажеш "пилотирай!". С тази разлика че в самолета всъщност има логика.

Може би искам само да кажа - ако някой се чувства глупав за дето не схваща C, не е от умствения багаж, от езика си е :)

Явно си нямаш и на понятие какво представлява Assembler... виж, прочети 2-3 реда и нищо няма да разбереш.. основата се учи с месеци...

Не ми се пише нищо, но ти намерих един прост пример, който чете 2 числа и изкарва тяхната сума
Извинявам се, че ще оспамя темата :)



jmp start
;****************************
;* Program to read in two *
;* numbers and add them *
;* and print out the result *
;****************************
number db 7 dup 0 ; string which will store input and output
n1 dw 0 ; two input variables
n2 dw 0
res dw 0 ; one output variable
cr dw 13,10,"$" ; carriage return, line feed
start:
mov dx,offset number
mov bx,dx
mov b[bx],5 ; maximum 5 characters to read
mov ah,0ah
int 21h ; read in a string from keyboard
mov bx,offset number +1
mov cx,00
mov cl,[bx] ; cl now contains number of digits
mov ax,00 ; ax will contain the number input
usedigit:
inc bx ; get next digit
shl ax,1 ; multiply by 10 using 2 shift ops and an add...
mov dx,ax ; ... x*8 + x*2 = x*10 is the principle.
shl ax,2
add ax,dx ; ax is now multiplied by 10
mov dx,00
mov dl,[bx] ; dl has new character
sub dx,48 ; subtract 48 = ascii('0') to get number value
add ax,dx ; add to ax
loop usedigit ; loop statement= jmp if cx > 0
cmp n1,00 ; see if this is first or second number read
jnz second
mov n1,ax ; assign it to the first variable
jmp start ; read in another number
second:
mov n2,ax ; or assign to second variable and continue
print_cr:
mov ah,09
mov dx,offset cr ; print out a carriage return character
int 21h
addnos:
mov ax,n1 ; move numbers to registers ...
mov bx,n2
add ax,bx ; ...and add
mov res,ax ; store the result
mov cx,00
setup_string:
mov bx,offset number+7 ; put a $ at end of buffer.
mov b[bx],'$' ; we will fill buffer from back forwards
dec bx
mov ax,res
convert_decimal:
mov dx,10
div dl ; divide by 10
add ah,48 ; convert remainder to character
mov [bx],ah ; and move to buffer for output
dec bx
mov ah,00 ; quotient becomes new value
cmp ax,00 ; if we haven't got all digits divide again
jnz convert_decimal
printout:
mov dx,bx
inc dx ; we decremented once too many, go forward one.
mov ah,09
int 21h ; output the string
close:
mov ah,4ch
mov al,00
int 21h ; end program

JDeel
05-23-2013, 00:25
Ей това човек като каже нещо напряко на друг на схващанията и веднага се взима за малоумен :D

Ми знам какво е Assembler, разучавал съм го и него. И микроконтролери съм програмирал. В момента поддържам уеб платформа която улеснява програмирането на определен език на една група от хора-непрограмисти. Вместо да пишеш код - визуално редиш блокова схема, натискаш бутон и кода ти е написан. Едновременно работя с няколко езика и смятам че имам някаква представа от програмиране.

Ей там е проблема - аз смятам, че програмирането трябва да е лесно разбираемо, кода да се разбира дори без коментари в него, и по възможност дадено нещо да се направи с минимум код. Сега ако трябва да прочета 2 числа с толкова код... някак си не ми стои добре, колкото и прехвален да е Assembler откъм производителност. Не мога и да си представя колко хиляди реда трябва да напиша за нещо дето да е приложимо някъде.

При C/C++ ми изглежда подобен хаос. То се вкарват едни библиотеки, едни константи се пишат навсякъде, функциите са с по кутурнайсе входни параметри, повечето от които са някакви масиви с кутурнайсе елемента в тях. На мен ми беше мъка даже да работя с текст, а за асоциативни масиви подобно на тези в PHP дори не си и мечтая. Но аз се опитвах да напиша dll за peer-to-peer комуникация с TCP/IP, та може и да съм попаднал на най-кофти функциите.

JDeel
05-23-2013, 00:40
Не. Ако под синтаксис разбираме това...

int a=1;
int b=2;
int c=a+b;

function MyFunction(a,b) {return(a*b);}

int d=MyFunction(a,b);

if (a<b) {направи ми нещо}

for (int i=0; i<10; i++) {направи ми нещо}

while(true) {
if (условие) {continue;}
if (друго условие) {направи ми нещо} else {break;}
}

... и още малко притурки, всичко е окей. Това го има например PHP (даже без въвеждането на параметри), където за да направиш програмка с учебна цел е достатъчно да имаш инсталиран сървър (за 2 минути работа), да направиш обикновен текстов файл и да почнеш да пишеш в него примерно на notepad++. Резултата от кодирането се вижда веднага, кодирането се случва бързо и лесно, функциите са директни и с малко параметри, и общо взето е удоволствие да си пишеш програмки :) И като човек схване тия основни неща нищо не пречи да почне да му се обяснява защо в C/C++ се въвеждат параметри и т.н.

Auriss
05-23-2013, 01:56
Добре, де, и в крайна сметка какво му е на това C не разбрах ? :cool:
Това имам предвид под синтаксис, да.

MaGuSs
05-23-2013, 10:47
Ей това човек като каже нещо напряко на друг на схващанията и веднага се взима за малоумен :D

Ми знам какво е Assembler, разучавал съм го и него. И микроконтролери съм програмирал. В момента поддържам уеб платформа която улеснява програмирането на определен език на една група от хора-непрограмисти. Вместо да пишеш код - визуално редиш блокова схема, натискаш бутон и кода ти е написан. Едновременно работя с няколко езика и смятам че имам някаква представа от програмиране.

Ей там е проблема - аз смятам, че програмирането трябва да е лесно разбираемо, кода да се разбира дори без коментари в него, и по възможност дадено нещо да се направи с минимум код. Сега ако трябва да прочета 2 числа с толкова код... някак си не ми стои добре, колкото и прехвален да е Assembler откъм производителност. Не мога и да си представя колко хиляди реда трябва да напиша за нещо дето да е приложимо някъде.

При C/C++ ми изглежда подобен хаос. То се вкарват едни библиотеки, едни константи се пишат навсякъде, функциите са с по кутурнайсе входни параметри, повечето от които са някакви масиви с кутурнайсе елемента в тях. На мен ми беше мъка даже да работя с текст, а за асоциативни масиви подобно на тези в PHP дори не си и мечтая. Но аз се опитвах да напиша dll за peer-to-peer комуникация с TCP/IP, та може и да съм попаднал на най-кофти функциите.

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

PonxY
05-23-2013, 22:16
@JDeep, не знам как може да кажеш, че C/C++ е "хаос". Специално C и C++ са едни от най-силно типизираните и структурирани езици. За да напишеш една програма, е по-трудно от колкото на PHP, но ако разбираш какво правиш е добре и структурирано. И библиотеките, това че се инклудват една по една си има цел, и не е просто ей така сложено. Специално ако говорим за хаос бих казал, че в PHP има доста повече хаос от колкото в C++. Виждам, че имаш опит и мисля, че няма смисъл да ти ги казвам тези работи :) . Естествено, всеки си има мнение.

MaGuSs
05-24-2013, 02:12
@JDeep, не знам как може да кажеш, че C/C++ е "хаос". Специално C и C++ са едни от най-силно типизираните и структурирани езици. За да напишеш една програма, е по-трудно от колкото на PHP, но ако разбираш какво правиш е добре и структурирано. И библиотеките, това че се инклудват една по една си има цел, и не е просто ей така сложено. Специално ако говорим за хаос бих казал, че в PHP има доста повече хаос от колкото в C++. Виждам, че имаш опит и мисля, че няма смисъл да ти ги казвам тези работи :) . Естествено, всеки си има мнение.

Ако програмиста на PHP го пише на ООП, няма никакъв хаос ;) Всичко си зависи от задклавиатурното устройство...

PonxY
05-24-2013, 11:26
Хаосът идва от някои реализации в ООП-то на PHP, които за мен са малко странни, но да прав си, че всичко зависи от програмиста. Лошото е, че PHP-то дава голяма свобода и понякога хората пишат много хаотичен и неструктуриран код. Но като цяло си прав, че всичко зависи от човека, който го пише този код.