download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

Помощ за калколатор на C

Автор
Съобщение
traio_95
Пон, 16.02.09, 10:12
Здравеите.
Траябва ми прост калколатор който да може да събира и изважда и да е с опература if
п.с Благодаря предварително
редактиран от traio_95 на 16.02.09 10:13
дядо_поп
Пон, 16.02.09, 10:49
Таквиз калкулатори наспорил Господ, чадо, под път и над път.
phrozencrew
Пон, 16.02.09, 18:56

RE: Помощ за калколатор на C

” Здравеите.
Траябва ми прост калколатор който да може да събира и изважда и да е с опература if
п.с Благодаря предварително „
Ето един простичък код:
#include <stdio.h>
 
int  getCharacter(){
    int ch;			// дефинираме character
    do {			// зацикляме докато не бъде прочетен точния символ
    ch = getchar();	// прочитаме символа
    } while ( (ch == 0x20)  ||      // проверка за SPACE-символ
		     ((ch >= 0x09)  &&      // проверка за други 
		      (ch <= 0x0D))		 //    видове празни места
		    );		      
    return ch;
}
 
int main()
{
		int a,b;
		char c;
		
		printf("Vyvedete stoinost za \"a\": ");
		scanf("%d", &a);
		printf("Vyvedete stoinost za \"b\": ");
		scanf("%d", &b);
	
		printf("Za sybirane vyvedi \"s\", za izvajdane \"i\": ");
		c = getCharacter();
		
		if (c == 's'){
			printf("Rezultat: %d\n", a+b);
		}
		if (c == 'i'){
			printf("Rezultat: %d\n", a-b);
		}	
		else printf("Vyvedenia operator ne prissytva v programata!");
		getch(); // Да изчакаме натискане на клавиш
}

Ето и сорса:
Simple_Calculator.rar [4.7 KB]
Програмата я компилирах с http://www.download.bg/index.php?cls=program&mtd=default&id=4020 . Този компилатор показа проблеми с функцията getchar() и новия ред, която се появява след натискане на ENTER. Затова добавих функцията getCharacter(), която прави проверка дали символа който се взима е "чист".

traio_95
Нед, 08.03.09, 19:32
@phrozencrew това за проверката на спейсове не го разбрах ще убясниш ли подробно
п.с Благодаря предварително
phrozencrew
Нед, 08.03.09, 21:25

RE: Помощ за калколатор на C

” @phrozencrew това за проверката на спейсове не го разбрах ще убясниш ли подробно
п.с Благодаря предварително „
Ще ти обясня. Значи можеш и да не използваш тая функция и да съкратиш кода, но зависи какъв компилатор и каква операционна система използваш. По принцип тези символи означават:
0x20 - SPACE
0x09 - TAB = Horizontal tab
0x0D - CR = CARRIAGE RETURN

Notepad++ има опция да ти изписва кога някой документ, текств файл (или сорс) съдържа подобни символи:

Но един от проблемите идва от това, че за нов ред
linux използва "\n"
Mac използва "\r"
Windows използва "\r\n"

Компилаторите, които са мулти-платформени понякога не се съобразяват с тези правила, а и не биха го направили, при условие, че под Linux можеш да пише програми на C за Win. Ти трябва сам да си следиш слабите места. Но такова е програмирането за C и C++, трябва да внимаваш за бъгове дори при простичките програми.

traio_95
Пон, 09.03.09, 21:58
Мерси много.
Аз си използвам linux (за него си пиша на него си компилирам). И да та питам някоя хубава книга за C и програмиране на C с QT4 и да са на англйски не пречи

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2014   Experta Ltd.