|
THAT IS exactly the challenge i am running into, defining new holders everytime the loop runs and put them automatically in formula
I guess this is something really high level for me as a rookie programmer
|
|
|
|
|
Just to add to what Luc said: We do not do your homework: it is set for a reason. It is there so that you think about what you have been told, and try to understand it. It is also there so that your tutor can identify areas where you are weak, and focus more attention on remedial action.
Start by concentrating on two things: The lack of a limit, and the input of numbers. The first - as Luc suggests - is handled with a List<T> List(T) Class (System.Collections.Generic)[^], by asking the user how many entries he wants and allocating an array big enough, or by using a "running total" and a count. The second is just a case of using the appropriate TryParse method to convert a string to an integer or floating point value.
Try it yourself, you may find it is not as difficult as you think!
If you meet a specific problem, then please ask about that and we will do our best to help. But we aren't going to do it all for you!
Sent from my Amstrad PC 1640
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Oh I got it can I have your email to send the final screenshot for you and more help?
ps. I am NOT looking for you to write my program. I want guidance on how to wrtie it
|
|
|
|
|
Nope! I get enough emails every day already...
And all assistance here is public: that way everybody benefits, not just the original poster.
Sent from my Amstrad PC 1640
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Generics are a relatively advanced concept for a new programmer and should not be needed for such a simple problem. I suggest going to your local library and see if you can get a book like this:
Learning C# 2005, Second edition by Jesse Liberty and Brian MacDonald. Copyright 2006 O'Reilly Media, Inc, 0-596-10209-7.
or "C# for Dummies" don't be fooled by the title, it is a good book for learning C#.
|
|
|
|
|
You do realise you replied to OG and not the original poster!
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Not overly relevant since it is easy to browse replies and see what useful information might be present.
|
|
|
|
|
Create a local variable to keep track of how many times you've gone through the loop, and another variable for a summing all the scores each time through the loop.
Then just divide the sum by the number of times through the loop, and you have the average.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
This is my code which is not returning data as per my requirement. So please rectify my code which will give me the desired output.
static void Main(string[] args)
{
List<int> test1 = DivideInt(10,1).ToList().OrderBy(s=> s).ToList();
List<int> test2 = DivideInt(10, 2).ToList().OrderBy(s => s).ToList();
List<int> test3 = DivideInt(10, 3).ToList().OrderBy(s => s).ToList();
List<int> test4 = DivideInt(10, 4).ToList().OrderBy(s => s).ToList();
List<int> test5 = DivideInt(10, 5).ToList().OrderBy(s => s).ToList();
List<int> test6 = DivideInt(10, 6).ToList().OrderBy(s => s).ToList();
List<int> test7 = DivideInt(10, 7).ToList().OrderBy(s => s).ToList();
List<int> test8 = DivideInt(10, 8).ToList().OrderBy(s => s).ToList();
List<int> test9 = DivideInt(10, 9).ToList().OrderBy(s => s).ToList();
List<int> test10 = DivideInt(10, 10).ToList().OrderBy(s => s).ToList();
}
public static IEnumerable<int> DivideInt(int pagetotal, int userinput)
{
if(userinput==0)
{
yield return 0;
}
else
{
int rest =pagetotal % userinput;
double result =pagetotal / (double) userinput;
for(int i=0; i< userinput;i++)
{
if(rest-- >0)
yield return (int) Math.Ceiling(result);
else
yield return (int) Math.Floor(result);
}
}
}
My requirement as following.
1) if total page is 10 and user split into 2 files then two files will be generated each file will have 5 pages
2) if total page is 10 and user split into 3 files then 3 files will be generated. first 2 files will have 3 pages and last pages will have 4 pages.
3) if total page is 10 and user split into 4 files then 4 files will be generated. first 3 files will have 3 pages and last pages will have 1 pages.
4) if total page is 10 and user split into 5 files then 5 files will be generated. each files will have 2 pages
5) if total page is 10 and user split into 6 files then first 5 files will be generated with 1 page. last file will have 5 pages
6) if total page is 10 and user split into 7 files then first 6 files will be generated with 1 page. last file will have 4 pages.
7) if total page is 10 and user split into 8 files then first 7 files will be generated with 1 page. last file will have 3 pages.
8) if total page is 10 and user split into 9 files then first 8 files will be generated with 1 page. last file will have 2 pages.
8) if total page is 10 and user split into 10 files then 10 files will be generated with 1 page.
again
1) if total page is 9 and user split into 2 files then first file will be generated with 4 page. last file will have 5 pages.2) if total page is 9 and user split into 3 files then each 3 files will have 3 pages.
3) if total page is 9 and user split into 4 files then first 3 files will have 2 pages and last page will have 3 pages.
4) if total page is 9 and user split into 5 files then first 4 files will have 2 pages and last page will have 2 pages.5) if total page is 9 and user split into 6 files then first 5 files will have 1 pages and last page will have 4 pages.
6) if total page is 9 and user split into 7 files then first 6 files will have 1 pages and last page will have 3 pages.
7) if total page is 9 and user split into 8 files then first 7 files will have 1 pages and last page will have 2 pages.
8) if total page is 9 and user split into 9 files then each file will have 1 pages.
Hopefully I am clear what I am looking for.
The output i am getting from my program.
Here i am mentioning what kind of output i am getting from above code and what kind of i am expecting.
1) List test4 = DivideInt(10, 4).ToList().OrderBy(s => s).ToList(); output is getting 2,2,3,3 but output should be 2,2,2,4
2) List test6 = DivideInt(10, 6).ToList().OrderBy(s => s).ToList(); output is getting 1,1,2,2,2,2 but output should be 1,1,1,1,1,5
3) List test7 = DivideInt(10, 7).ToList().OrderBy(s => s).ToList(); output is getting 1,1,1,1,2,2,2 but output should be 1,1,1,1,1,1,4
4) List test8 = DivideInt(10, 8).ToList().OrderBy(s => s).ToList(); output is getting 1,1,1,1,1,1,2,2 but output should be 1,1,1,1,1,1,1,3
5) List test9 = DivideInt(10, 9).ToList().OrderBy(s => s).ToList(); output is getting 1,1,1,1,1,1,1,1,2 but output should be 1,1,1,1,1,1,1,1,2
please guide me what to change in routine DivideInt() thanks
modified 12-Aug-18 12:10pm.
|
|
|
|
|
I would define the number of groups then add the pages to the groups, then add the remaining pages to the groups starting at group 0. The I would go get the integers for each page in each group.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Hi,
I'm confused, your code is implementing something that is harder than what your requirements stipulate, assuming I understood them correctly, as in: generate N positive integers totalling SUM, where the first N-1 numbers are identical and maximal.
If so, this would be the "algorithm" for N>0 and SUM>=0:
for(int i=0; i<N-1; i++) yield return SUM/N;
yield return SUM-SUM/N*(N-1);
As this is an integer problem, no doubles are involved; for positive numbers integer divide returns the (floored) quotient.
Further comment: I see no need to order the list as you do, and if you really want a List<int> then why do you use IEnumerable.ToList, your method could create a List<int> straight away...
|
|
|
|
|
How can I get meta data of any given file in asp.net core
|
|
|
|
|
It depends on the file type and where it stores its meta data. Please edit your question and provide proper details of your problem.
|
|
|
|
|
Hi, i've got a listbox that populates with servers trough an LDAP query
when doublclicking on a server a tab is created with an RDP session
this works perfectly to create the RDP
is there a way that i can close the tabs and disconnect that active rdp session?
right now it only closes the tab but the session remains active.
i'm using
AxMsRdpClient9NotSafeForScripting
thanks
|
|
|
|
|
I love the name of the control you are using in your script
Can't you detect the onclosing event of the tab and kill the RDP session in that event or do you mean you can't kill the session from c#!
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
this is what happends when the new tab is created
TabPage page = new TabPage(lbServers.SelectedItem.ToString());
page.Name = lbServers.SelectedItem.ToString();
tabControl1.TabPages.Add(page);
tabControl1.SelectedTab = page;
AxMsRdpClient9NotSafeForScripting rdpWindows = new AxMsRdpClient9NotSafeForScripting();
rdpWindows.Dock = DockStyle.Fill;
page.Controls.Add(rdpWindows);
rdpWindows.AdvancedSettings9.NegotiateSecurityLayer = true;
rdpWindows.AdvancedSettings9.SmartSizing = true;
rdpWindows.Domain = txtDomain.Text;
rdpWindows.UserName = txtUser.Text;
rdpWindows.AdvancedSettings9.ClearTextPassword = txtPass.Text;
rdpWindows.Server = page.Name;
rdpWindows.Connect();
as the tabs name contains the RDP server name i tough i would be able to properly close the connection that way but somehow it doesn't work.
|
|
|
|
|
Where do you call Disconnect?
This space for rent
|
|
|
|
|
i don't call disconnect becaus it doesn't work when closing the tab
there is no point in opening a tab and closing the connection
somehow i guess i need to be able to refere to the docked rdp and close that but i have no clue how to access it
|
|
|
|
|
If you don't call Disconnect, you're not going to be able to release the active session. When you are closing the TabPage, you need to call Disconnect[^].
This space for rent
|
|
|
|
|
At a guess you abandon the connection when it moves out of scope and therefore you have nothing to disconnect.
Member 11441622 wrote: AxMsRdpClient9NotSafeForScripting rdpWindows = new AxMsRdpClient9NotSafeForScripting();
Try moving this to a class level variable instead of a method level variable. Then the tab close event should be able to pick up the rdpWindows variable and disconnect the session.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
i tried that once before and that results in an error when doing this:
rdpWindows.Server = tabControl1.SelectedTab.Name.ToString();
rdpWindows.Disconnect();
error trown:
System.Runtime.InteropServices.COMException: 'Error HRESULT E_FAIL has been returned from a call to a COM component.'
|
|
|
|
|
Member 11441622 wrote: rdpWindows.Server = tabControl1.SelectedTab.Name.ToString();
rdpWindows.Disconnect();
So you think a string = a rdp server. The tab name is a string not an object
Member 11441622 wrote: AxMsRdpClient9NotSafeForScripting rdpWindows Declare that as a class level variable.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
I have the following setup:
public interface ITest
{
TestResult PerformTest();
}
public class Test1 : ITest
{
public TestResult PerformTest()
{
Thread.Sleep(60 * 10 * 1000);
return TestResult.Failed;
}
}
public class Test2 : ITest
{
public TestResult PerformTest()
{
Thread.Sleep(60 * 2 * 1000);
return TestResult.Passed;
}
}
public enum TestResult
{
Failed,
Passed
}
class Program
{
static List<Task> tasks = new List<Task>();
static void Main(string[] args)
{
List<ITest> tests = new List<ITest>
{
new Test1(),
new Test2()
};
foreach (var test in tests)
{
var task = Task.Factory.StartNew(() =>
{
TestResult testResult = test.PerformTest();
return testResult;
});
tasks.Add(task);
}
try
{
Task.WaitAll(tasks.ToArray());
}
catch (Exception e)
{
throw e;
}
}
}
Inside test2 I need to know when test1 is finshed and pause execution until it is. Would a ManualResetEvent work here? If so, where do I define it? Would I then pass a reference to it to all other classes that need to know when Test1 is done?
If not, is there a better way to do this?
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
Ya can't fix stupid.
|
|
|
|
|
Something like this should work:
public class Test1 : ITest
{
private readonly ManualResetEventSlim _mre;
public Test1(ManualResetEventSlim mre)
{
_mre = mre;
}
public TestResult PerformTest()
{
try
{
Thread.Sleep(60 * 10 * 1000);
return TestResult.Failed;
}
finally
{
_mre.Set();
}
}
}
public class Test2 : ITest
{
private readonly ManualResetEventSlim _mre;
public Test2(ManualResetEventSlim mre)
{
_mre = mre;
}
public TestResult PerformTest()
{
Thread.Sleep(60 * 2 * 1000);
_mre.Wait();
return TestResult.Passed;
}
}
static class Program
{
static void Main()
{
var mre = new ManualResetEventSlim();
var tests = new List<ITest>
{
new Test1(mre),
new Test2(mre),
};
var tasks = new List<Task>();
foreach (ITest test in tests)
{
Task task = Task.Run(() => test.PerformTest());
tasks.Add(task);
}
Task.WaitAll(tasks.ToArray());
}
}
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
If you know the thread instance, then it's easy: Thread.Join Method (System.Threading)[^] will do it for you.
If you don't - and you probably don't in your example - then have you considered a lock statement?
lock Statement (C# Reference) | Microsoft Docs[^] If you lock a variable at the start of Thread1, and try to grab the lock at the end of Thread2, it will have to halt until the lock is available - which means that Thread1 is finished.
Sent from my Amstrad PC 1640
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|