C/C++

Член од
6 јуни 2009
Мислења
3.094
Поени од реакции
445
Е мојов е побрз. Помалку операции, (x се пресметува еднаш и се сместува во променлива)

Код:
double visinaKvadrat(int a, int b, int c)
{
   int razlika;
   double hKv, x;
   razlika = a>b? (a-b) : (b-a);
   x = (double)razlika/2.0;
   hKv = (double)(c*c) - x*x;
   return hKv;
}

int main()
{
   int a,b,c;
   double hKv;
   scanf("%d %d %d", &a, &b, &c);
   hKv = visinaKvadrat(a, b, c);
   printf("%lf\n", hKv);
   return 0;
}
Еве го и со цртеш :pos:
 

Песимист

Добро информиран оптимист
Член од
11 ноември 2008
Мислења
1.676
Поени од реакции
181
Ќе ти пратам по ПП туторијали на македонски денес или утре (се надевам не се брзаш :)).[/QUOTE]
Не не уживај кога можеш тогај и стварно ногу работа ке ми завршеш.:smir:
 

old_School_mk

Програмер, гејмер, psy-trance уживател
Член од
11 август 2009
Мислења
6.153
Поени од реакции
5.921
Фала за помошта околу програмава со трапезот. Ама пошто за лабораторска уствари тоа ни е втора задача, ај да ве помачам малце и со првата :smir:.

#include <stdio.h>
int main()
{
char c; int i,j,k;
float x;
c='A';
i=123;j=4;k=10;
x=9.868;
printf("%-5d%05d\n%c %0*.*f\n",i,i,c,k,j,x);
j=scanf("%3d\"%c%*2c\"%f",&i,&c,&x);
printf("%0*d %c %0*.*f\n",j,i,c,2*j,j,x);

return(0);
}

Ја у ова не се снаоѓам... Ако може некој да ми објасни што значат болдираниве линии ќе му бидам многу благодарен :back:

PS: во задачата пишува да се "претпостави" што ќе се добие на излез, ако се внесе следново:
1. 098"abc"987.076
2. 0097"abc"678.098
3. 876"ob"890.345
4. 567"ijkl234.567
5. 567"rty" 098.09
 

ZoraNaSlobodata

Чоечко суштество
Член од
5 ноември 2008
Мислења
2.736
Поени од реакции
111
Здраво,едно прашање до поискусните програмери.

Имам основно знаење на c ++,низи,стандардната библиотека,функции/методи,покажувачи,работа со динамичка меморија,основните концепти на објектно ориентираното програмирање,наследство полиморфизам итн.

Прашањето е - сакам да си го унапредам знаењето,ама незнам како и кај и со шо да почнам.
На пример,ако почнам да го користам јазикот за пишење на драјвери,оперативни системи или некои сложени игри :toe:
 

old_School_mk

Програмер, гејмер, psy-trance уживател
Член од
11 август 2009
Мислења
6.153
Поени од реакции
5.921
Се надевам ќе се најде некој што ќе ми ги реши задачиве во C :smir:

Да се напише програма која ќе ги отпечати сите прости броеви од даден опсег (почетокот и крајот на опсегот се внесуваат од тастатура) чија сума на цифри е непарен број, а производот на цифрите е парен број. На крајот да се испечати колку вакви броеви имало во опсегот.
За еден број велиме дека е прост доколку има точно два (различни) делители (тоа се 1 и самиот тој број). Првите неколку прости броеви се: 2, 3, 5, 7, 11, 13, 17, 19…

Од тастатура се читаат N цели броеви (N се внесува на почетокот на програмата, исто така од тастатура). Програмата треба да испечати дали низата составена од овие N елементи е строго монотоно растечка или не (т.е., дали секој елемент, почнувајќи од вториот, е стриктно поголем од неговиот претходник).
 
Член од
6 јуни 2009
Мислења
3.094
Поени од реакции
445
Здраво,едно прашање до поискусните програмери.

Имам основно знаење на c ++,низи,стандардната библиотека,функции/методи,покажувачи,работа со динамичка меморија,основните концепти на објектно ориентираното програмирање,наследство полиморфизам итн.

Прашањето е - сакам да си го унапредам знаењето,ама незнам како и кај и со шо да почнам.
На пример,ако почнам да го користам јазикот за пишење на драјвери,оперативни системи или некои сложени игри :toe:
Најдобро е да се вежба на задачи. Имаш на http://www.z-trening.com , на http://codefu.com.mk
Од нив најдобро се учат алгоритми и податочни структури. Значи прво некој алгоритам се учи теоретски и после преку задачи се применува. За ОО дизајн најдобро е да си почнеш некој свој проект, и во него да експериментираш.

Се надевам ќе се најде некој што ќе ми ги реши задачиве во C :smir:

Да се напише програма која ќе ги отпечати сите прости броеви од даден опсег (почетокот и крајот на опсегот се внесуваат од тастатура) чија сума на цифри е непарен број, а производот на цифрите е парен број. На крајот да се испечати колку вакви броеви имало во опсегот.
За еден број велиме дека е прост доколку има точно два (различни) делители (тоа се 1 и самиот тој број). Првите неколку прости броеви се: 2, 3, 5, 7, 11, 13, 17, 19…

Од тастатура се читаат N цели броеви (N се внесува на почетокот на програмата, исто така од тастатура). Програмата треба да испечати дали низата составена од овие N елементи е строго монотоно растечка или не (т.е., дали секој елемент, почнувајќи од вториот, е стриктно поголем од неговиот претходник).
Види овде. Има едно 10ина алгорими за наоѓање на прости броеви. Од наједноставниот па се потешки (но и побрзи)
 

old_School_mk

Програмер, гејмер, psy-trance уживател
Член од
11 август 2009
Мислења
6.153
Поени од реакции
5.921
Види овде. Има едно 10ина алгорими за наоѓање на прости броеви. Од наједноставниот па се потешки (но и побрзи)
Баш и не ми треба некоја што ќе ми ги најде првите 100 милиони за 13 секунди, don't you think? :nesum:
Ако може некоја наједноставна програма, please? Мислам дека ова и нема да ми користи на испит туку некоја што ќе ми ги најде да речеме до 100 без никакви експертски кодови.
 
Член од
6 јуни 2009
Мислења
3.094
Поени од реакции
445
Баш и не ми треба некоја што ќе ми ги најде првите 100 милиони за 13 секунди, don't you think? :nesum:
Ако може некоја наједноставна програма, please? Мислам дека ова и нема да ми користи на испит туку некоја што ќе ми ги најде да речеме до 100 без никакви експертски кодови.
Moжеше да го извадиш алгоритмот за дали е прост од првиот пример таму. Односно првиот пример е цел програм (со наједноставниот алгоритам) кој ги бара простите броеви од 1 до даден број. Туку еве јас ќе ти напишам поедноставно, таму користат линкирана листа за да ги запамтат најдените броеви, а не обчина листа (array). Во примеров подолу немам никаква листа, веднаш се печати бројот ако е прост.

Код:
#include <stdio.h>

int daliEProst(int n)
{
	int mnozitel = 2;
	int prost = 1;
	if (n==1)
		return 0; //1 ne e ni slozen ni prost
	while (mnozitel*mnozitel <= n)
	{
		if (n%mnozitel == 0)
		{
			prost = 0; break;
		}
		mnozitel++;
	}
	return prost;
}

int main()
{
	int dolnaGranica = 1, gornaGranica = 100, i;
	for (i=dolnaGranica; i<=gornaGranica; i++)
	{
		if (daliEProst(i))
		{
			printf("%d ", i);
		}
	}
}
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Баш и не ми треба некоја што ќе ми ги најде првите 100 милиони за 13 секунди, don't you think? :nesum:
Ако може некоја наједноставна програма, please? Мислам дека ова и нема да ми користи на испит туку некоја што ќе ми ги најде да речеме до 100 без никакви експертски кодови.
Прва година на електро ? :)

Иначе еве ти код за простите броеви без користење функции и такви работи...

Код:
#include <iostream>

using namespace std;

int main()
{
	int start = 0, end = 0;

	cout << "Vnesete go pochetokot: ";
	cin >> start;
	
	cout << "Vnesete go krajot: ";
	cin >> end;

	int a = 0;

	for(int i=start; i<=end; i++) {
		if(i%2!=0) {
			for(int j=3; j<=i/2; j++) {
				if(i%j==0) {
					a++;
				}
			}
			if(a>0) {
				a=0;
			} else {
				cout << i << " ";
			}
		}
	}

	cout << endl;

	cin.get();
           cin.get();
}
А тоа за низата дали е или не е растечка...

Код:
#include <iostream>

using namespace std;

int main()
{
	int N = 0;

           cout << "Vnesete kolku elementi da ima nizata: ";
           cin >> N;

	int niza[N];
           
           for(int i=0; i<N; i++) {
                 cout << "Vnesete go elementot " << i << ": ";
                 cin >> niza[i];
           }

	bool ok = true;

	for(int i=1; i<N; i++) {
		if(niza[i]<niza[i-1]) {
			ok = false;
		}
	}

	if(ok == true) {
		cout << "Nizata e rastechka\n";
	} else {
		cout << "Nizata ne e rastechka\n";
	}

	cin.get();
	cin.get();
}
Ете ги решенијата со користење на едноставен код. :)
 
Член од
4 февруари 2009
Мислења
3.745
Поени од реакции
1.848
Mи треба помош..Иам една игра..Сеа оваа игра бара излеа Microsoft Visual C++ 2005 Redistributable. Се беше ок додека не инсталирав Microsoft Visual C++ 2008 Redistributable. Кога ја палам играта сеа, ми покажува некој ерор поврзан со ова. Ги избришав сите С++, и инсталирав Microsoft Visual C++ 2005 Redistributable од поново, и играта пак нејке да се упали, го дава истиот ерор? Помош?
 
Член од
9 септември 2008
Мислења
115
Поени од реакции
13
Aj prasanje do SkyDriver, dali moze taa vtorata da se resi malce poinaku bez koristenje na nizi, da receme samo so ciklusite do,for, while???? Kako poinaku da gi vnesam clenovite na nizata, bez toa niza?
p.s. brgu mi zatreba pomosta, neli...:pipi:
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Aj prasanje do SkyDriver, dali moze taa vtorata da se resi malce poinaku bez koristenje na nizi, da receme samo so ciklusite do,for, while???? Kako poinaku da gi vnesam clenovite na nizata, bez toa niza?
p.s. brgu mi zatreba pomosta, neli...:pipi:


Хмм... не си ми јасна баш... како поинаку да ги внесеш членовите на низата, без користење на низа ? :nesum:

...da receme samo so ciklusite do,for, while???? Kako poinaku da gi vnesam clenovite na nizata, bez toa niza?


Тоа „i“ ти е покажувач кон низата, значи правиш for циклус кој ќе започне од 0 (индексот на секоја низа) и ќе се повторува се додека е помал од должината на низата (во случајот со задачата должината на низата е вредноста на променливата „N“). Значи for циклусот би изгледал вака for(int i=0; i<N; i++)...

И сега, и со секое наредно повторување „i“ се зголемува за еден, што значи дека...

Прво повторување:
i=0;
cin >> niza; // значи тука внесуваш вредност за niza[0]

Второ повторување:
i=1; // „i“ се зголемило за 1
cin >> niza; // со второто повторување внесуваш вредност за niza[1]

Трето повторување:
i=2; // „i“ се зголемило за 1
cin >> niza; // со третото повторување внесуваш вредност за niza[2]

...и се така додека i<N.

Значи ова ти е полнење низа со for циклус и мора да биде со niza (т.е. со „i“ покажувачот) затоа што незнаеш колкава ќе биде нејзината должина.

Е сега незнам дали ова што го објаснив е тоа што ти требаше... Ако си барала нешто друго или пак ако не ти е јасно нешто од ова што го објаснував, слободно прашај и ќе ја наредиме работата :)
 
Член од
2 март 2007
Мислења
4.576
Поени од реакции
3.773
Хмм... не си ми јасна баш... како поинаку да ги внесеш членовите на низата, без користење на низа ? :nesum:



Тоа „i“ ти е покажувач кон низата, значи правиш for циклус кој ќе започне од 0 (индексот на секоја низа) и ќе се повторува се додека е помал од должината на низата (во случајот со задачата должината на низата е вредноста на променливата „N“). Значи for циклусот би изгледал вака for(int i=0; i<N; i++)...

И сега, и со секое наредно повторување „i“ се зголемува за еден, што значи дека...

Прво повторување:
i=0;
cin >> niza; // значи тука внесуваш вредност за niza[0]

Второ повторување:
i=1; // „i“ се зголемило за 1
cin >> niza; // со второто повторување внесуваш вредност за niza[1]

Трето повторување:
i=2; // „i“ се зголемило за 1
cin >> niza; // со третото повторување внесуваш вредност за niza[2]

...и се така додека i<N.

Значи ова ти е полнење низа со for циклус и мора да биде со niza (т.е. со „i“ покажувачот) затоа што незнаеш колкава ќе биде нејзината должина.

Е сега незнам дали ова што го објаснив е тоа што ти требаше... Ако си барала нешто друго или пак ако не ти е јасно нешто од ова што го објаснував, слободно прашај и ќе ја наредиме работата :)



И мене ми треба ова.. Значи друже без тоа cin,cout itn само да содржи for,while,if. Ајде ако може да помогнете ми треба за утре сабајле.Поздрав
 
Член од
6 јуни 2009
Мислења
3.094
Поени од реакции
445
Од тастатура се читаат N цели броеви (N се внесува на почетокот на програмата, исто така од тастатура). Програмата треба да испечати дали низата составена од овие N елементи е строго монотоно растечка или не (т.е., дали секој елемент, почнувајќи од вториот, е стриктно поголем од неговиот претходник).
И мене ми треба ова.. Значи друже без тоа cin,cout itn само да содржи for,while,if. Ајде ако може да помогнете ми треба за утре сабајле.Поздрав
Еве ја задачата решена без низи.

Код:
#include <stdio.h>

int main()
{
	int N, a1, a2, i, daliRasti = 1;
	scanf("%d", &N);
	if (N==0)
		return 0;
	scanf("%d", &a1); //читаме прв елемент
	for (i=1; i<N; i++) //i=1, а не нула значи почнуваме од втор
	{
		scanf("%d", &a2);
		if (daliRasti && a2<a1) //овде можеби треба да стои <=. Ако е само < тогаш ќе се смета дека расти и ако има еднакви соседни членови, пр: 1 2 2 3
		{
			daliRasti = 0;
		}
		a1 = a2;
	}
	if (daliRasti)
		printf("Nizata monotono rasti\n");
	else
		printf("Nizata ne rasti monotono\n");

	return 0;
}
 

Kajgana Shop

На врв Bottom