Перейти к содержимому

Фото
- - - - -

C# help !


  • Вы не можете создать новую тему
  • Please log in to reply
18 ответов в этой теме

#1 memfis

memfis
  • Пользователь
  • 169 сообщений
  • Откуда:Таллинн

Отправлено 27 сентября 2006 - 10:19

напишите пожалуйста программки вот от сюда =>>>

http://www.hot.ee/js...man/cSharp.html

те кто знает смогут это сделать быстро=) :rolleyes: :rolleyes:
  • 0

#2 dmitry.eu

dmitry.eu
  • Пользователь
  • 37 сообщений
  • Откуда:Таллин

Отправлено 28 сентября 2006 - 02:47

Пишется же не долго...
$kr = 845.45;
$money = array(500,100,50,25,10,5,2,1,0.5,0.2,0.1,0.05);

for($j=0, $c=count($money); $j<$c; $j++) {
	$tmp = floor($kr/$money[$j]);
	if($tmp>=1) {
		$kr -= $money[$j]*$tmp;
		echo ($money[$j]<1?($money[$j]*100).' senti':$money[$j].' krooni').': '.$tmp."\n";
	}
}

Гы, тестить надо с числом 693.85. ;)

Сообщение изменено: dmitry.eu (28 сентября 2006 - 02:58 )

  • 0

#3 Cryptoboy

Cryptoboy
  • Пользователь
  • 280 сообщений

Отправлено 28 сентября 2006 - 13:48

dmitry.eu, ниче не попутал?=) ему на C# надо
  • 0

#4 memfis

memfis
  • Пользователь
  • 169 сообщений
  • Откуда:Таллинн

Отправлено 28 сентября 2006 - 14:17

да чего то не пашит :(

и какой то синтаксис не понятный первый раз такой вижу =))

мне надо на С шарпе =)
  • 0

#5 V^v

V^v
  • Пользователь
  • 316 сообщений

Отправлено 28 сентября 2006 - 14:28

угу, это был не C#, а просто алгоритм. если хоть немного понимаешь, то сам можешь переделать.
  • 0
int main(void)

#6 Cryptoboy

Cryptoboy
  • Пользователь
  • 280 сообщений

Отправлено 28 сентября 2006 - 14:38

это пхп )
  • 0

#7 V^v

V^v
  • Пользователь
  • 316 сообщений

Отправлено 28 сентября 2006 - 14:41

ну, судя по количеству долларов, да =)
  • 0
int main(void)

#8 memfis

memfis
  • Пользователь
  • 169 сообщений
  • Откуда:Таллинн

Отправлено 28 сентября 2006 - 22:16

ну где мега программеры=))
  • 0

#9 BFG

BFG
  • Пользователь
  • 26 сообщений

Отправлено 29 сентября 2006 - 12:10

Что то знакомые задания =)) гыы
  • 0

#10 memfis

memfis
  • Пользователь
  • 169 сообщений
  • Откуда:Таллинн

Отправлено 29 сентября 2006 - 12:13

BFG, ты хто? =))
  • 0

#11 Lynx

Lynx
  • Пользователь
  • 162 сообщений
  • Откуда:Таллинн

Отправлено 01 октября 2006 - 21:20

Обратись ко мне в институте, чем могу - помогу.
А пока вопрос к тем, кто программит на Си шарпе.

Вот моя програмка, по той же самой теме. Она работает, но не так,как хотелось бы. Когда дело доходит до центов, то она не округляет остаточную сумму. Например, когда вводим 95 центов, то в остатке получается 4,99 сентов, вместо 5.
Как это исправить?

using System;
using System.Collections.Generic;
using System.Text;

namespace Cash2
{
class Program
{
static void Main(string[] args)
{
int[] kr = { 500, 100, 50, 25, 10, 5, 2, 1, 50,20,10,5 };
Console.Write("Введите сумму денег для подсчета купюр: ");
double money = double.Parse(Console.ReadLine());
for (int i = 0; i < 12; i++)
{
int temp = (int)(money / kr[i]);
if (i == 7)
money *= 100;
money -= kr[i]*temp;
if (temp != 0)
Console.WriteLine("Купюра: {0} {2}, Количество: {1} шт.", kr[i], temp, ((i > 7) ? "сентов" : "крон"));

Console.WriteLine(money);
}
}
}
}
  • 0

#12 БугаГа

БугаГа
  • Пользователь
  • 260 сообщений
  • Откуда:-за

Отправлено 02 октября 2006 - 08:17

Вот моя програмка, по той же самой теме. Она работает, но не так,как хотелось бы. Когда дело доходит до центов, то она не округляет остаточную сумму. Например, когда вводим 95 центов, то в остатке получается 4,99 сентов, вместо 5.
Как это исправить?


Делал Подправил по быстрому на лекции, сильно не бить :) , но и 693.85 и 0.95 работали правильно. Вообще эффективней эти задания вроде через модуль (%) делаются :mellow:

// project created on 2/10/2006 at 8:32 A
using System;
using System.Text;

namespace Cash2
{
class Program
{
static void Main(string[] args)
{
int[] kr = { 500, 100, 50, 25, 10, 5, 2, 1, 50,20,10,5 };
Console.Write("Введите сумму денег для подсчета купюр: ");
double money = double.Parse(Console.ReadLine());
for (int i = 0; i < 12; i++)
{
int temp = (int)(money / kr[i]);
if (i == 8)
money *= 100;
money -= kr[i]*temp;
if (temp != 0)
Console.WriteLine("Купюра: {0} {2}, Количество: {1} шт.", kr[i], temp, ((i > 7) ? "сентов" : "крон"));
if ( i < 11) Console.WriteLine(money);//чтоб остаток после 5 сэнтов не выдавал
}
}
}
}

Сообщение изменено: БугаГа (02 октября 2006 - 08:19 )

  • 0
First they ingore you. Then they laugh at you. Then they fight you. Then you win. © Mahatma Ghandi

#13 Акей

Акей

    Смотрит свысока

  • Постоялец
  • 2 134 сообщений

Отправлено 02 октября 2006 - 08:30

вот вариант на C, с модулями
http://www.tud.ttu.e...d/EestiRaha.cpp
писал препод, думаю должно работать
  • 0

#14 Lynx

Lynx
  • Пользователь
  • 162 сообщений
  • Откуда:Таллинн

Отправлено 02 октября 2006 - 12:04

Ув. Бугага!
протестируем программу с числом 1,75

по 20 центов - 3 шт.
по 10 - 1 шт.
по 5 - 1 шт.
в консоле видно, что программа не берет 50 центов, а значит (if==7), а не ==8
НО когда мы исправим эту ошибку, то при той же самой сумме остаток будет равен 4 центам :(

Приходим к тому, с чего начали - проблема с округлением

Акей, к сожалению я не могу посмотреть твой вариант на Си, не мог бы ты переписать программку на Си #?
  • 0

#15 Cryptoboy

Cryptoboy
  • Пользователь
  • 280 сообщений

Отправлено 02 октября 2006 - 23:20

Lynx, так подойдет?
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication4
{
	class Program
	{
		static void Main(string[] args)
		{
			int[] cp = {50000, 10000, 5000, 2500, 1000, 500, 100, 50, 20, 10, 5};
			double money = double.Parse(Console.ReadLine());
			int x = (int)(money * 100);
			int i = 0;
			while ((x != 0) && (i < cp.Length)) 
			{
				int cnt = 0;
				while (x - cp[i] >= 0)
				{
					x -= cp[i];
					cnt++;
				}
				if (cnt > 0)
				  if (cp[i] >= 100) Console.WriteLine("{0} по {1} крон", cnt, cp[i] / 100);
				  else Console.WriteLine("{0} по {1} центов", cnt, cp[i]); 
				i++;
			}
		}
	}
}

  • 0

#16 Mastahh

Mastahh
  • Постоялец
  • 539 сообщений
  • Откуда:Tallinn

Отправлено 03 октября 2006 - 08:45

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication4
{
	class Program
	{
		static void Main(string[] args)
		{

			int[] krons = {500,100,50,25,10,5,2,1};
			int[] cents = {50,20,10,5};
			float inFloat;
			if (float.TryParse(Console.ReadLine(), out inFloat))
			{
				//For Krons
				for (int i = 0; i < krons.Length; i++)
				{
					if ((int)(inFloat / krons[i]) > 0)
					{
						Console.WriteLine("po {0} kron - {1}",krons[i],(int)(inFloat/krons[i]));
						inFloat -= (float)(krons[i] * (int)(inFloat / krons[i]));
					}
				}
				inFloat = (int)(inFloat * 100);
				if (inFloat > 0)
				{
					for (int i = 0; i < cents.Length; i++)
					{
						if ((int)(inFloat / cents[i]) > 0)
						{
							Console.WriteLine("po {0} centov - {1}", cents[i], (int)(inFloat / cents[i]));
							inFloat -= (int)(cents[i] * (int)(inFloat / cents[i]));
						}
					}
				}
			}
			else
			{
				Console.WriteLine("Error not number.");
			}
		}
	}
}
Всё работает, багов не должно быть.
  • 0

#17 Lynx

Lynx
  • Пользователь
  • 162 сообщений
  • Откуда:Таллинн

Отправлено 05 октября 2006 - 10:27

Угу, так пойдет :)
До того, как заглянула на форум, додумалась до того же ;)
  • 0

#18 netghost

netghost
  • Пользователь
  • 6 сообщений

Отправлено 07 октября 2006 - 19:46

В послеодних двух вариантах не показывает сенты!!
  • 0

#19 Lunatique

Lunatique
  • Пользователь
  • 210 сообщений

Отправлено 16 октября 2006 - 14:44

memfis,
а что это такое? билеты на экзамен чтоли?

первые четыре задания у меня уже давно сделаны - проще некуда.
  • 0
Лучше геройский пёрнуть, чем предательский бзднуть!