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

Фото
- - - - -

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
  • Пользователь
  • 448 сообщений
  • Откуда: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
Лучше геройский пёрнуть, чем предательский бзднуть!