Showing posts with label Computer programing. Show all posts
Showing posts with label Computer programing. Show all posts

Monday, July 1, 2024

Prime numbers generator - 6 - 240701Mo

  Prime numbers generator - 6 [2/2]  
.
(Finds all prime numbers between 2 and 32000000002 - c#)
Version: 240701Mo
Previous version: 171005Th
.
Decades ago, I was a regular visitor to the Liaquat National Memorial Library in Karachi, where I spent countless hours reading books. Although I no longer remember how and when my first visit to the library happened, I still fondly remember spending several hours over many years in the library's reading hall, reading books on different subjects. While computer programming books were my primary interest, I also enjoyed reading books on various subjects and browsing through different newspapers. It was at this library that I first discovered books on Lisp and Prolog, but my true passion was for books on C programming language, and I was fortunate to find an impressive collection of high-quality titles on the subject.
.
The Liaquat National Memorial Library offered a serene and peaceful environment, conducive to learning. After a few visits, I realized that arriving early was crucial to securing a seat in the vast reading hall, which was always in high demand. This knowledge motivated me to arrive promptly on subsequent visits, ensuring that I could fully utilize the library's resources and enjoy the tranquil atmosphere.
.
The Liaquat National Memorial Library's proximity to PTV Karachi offered a thrilling bonus - glimpses of TV stars of the time, such as Subhani ba Yunus, during my visits. One afternoon, I even spotted the renowned Pakistani movie star, Mohammad Ali, standing by the library entrance, engaged in conversation with someone. I believe he was a federal minister at the time. Unfortunately, my focus was elsewhere, preoccupied with getting photocopied chapters of a Unix book, and I missed the opportunity to request his autograph. I still recall his tall stature, pinkish-white complexion, and warm smile. It's a memory I cherish, even if I didn't get his signature.
.
Let's come to the topic of this blog post. During one of my visits to the Liaquat National Memorial Library, I requested the latest edition of the Guinness Book of World Records. While browsing through its pages, I stumbled upon a fascinating entry about a competition to discover prime numbers with a larger number of digits than any previously known prime number. Since I was already familiar with the process of determining whether a number is prime or not, an idea struck me: why not use a computer to find some prime numbers myself?
.
Since then, I have been exploring various software applications at my disposal to develop programs for discovering a vast number of prime numbers. Over time, I have utilized a range of computers and softwares, which are listed as follows:
.
  1. Turbo C version 2 ON Pentium 2 and Pentium 3
  2. Html and JScript ON Pentium 4
  3. GCC ON Pentium 3 and i5
  4. C# 6 ON Pentium 3
  5. C# 2008 ON Pentium 4
  6. C# 2010 ON i5
.
Across various software platforms and at different times, I experimented with diverse methods for discovering prime numbers, including the 'long hand division method' and various iterations of the 'Sieve method'. Additionally, I persistently researched online, stumbling upon websites showcasing extensive lists of prime numbers, such as the first million prime numbers. This sparked a thought - I too have amassed a substantial collection of prime numbers on my computer's hard drive. Why not share my findings, even if I'm not the first to discover them, on the internet someday?
.
As a result, I reran the current version of my prime number finding application to explore prime numbers within various upper limits under 32000000002. Notably, when setting the upper limit to 20000000, I discovered approximately a little more than one million prime numbers. I'm sharing below some of the outputs from these prime number searches. So far the maximum I reached for continuous list of prime numbers is as follows:
.
  • Range......................: [2 and 32000000002] inclusive
  • Prime numbers found.: [1382799415]
  • Largest prime number: [31999999987]
.
In previous version of this post I had shared a list of first "6542" prime numbers, under 2^16, I found using software made by me using C# 2010. In previous versions of this post I had also shared links to files containing first 1270607 prime numbers I found under 20000000 using an application I made in c# 2010.
.
Today in this post in the following I am shareing screeshots of the application which is under descussion in this post and this post's previous version.
.

.
.
Application Output
Following are screenshots of the application I took at different stages of application.
.
(Application is loaded)
.
(Process is finished successfully)
.
.

.
  I hope to share more of my discoveries in the future  
.

.
If there are any mistakes then I will surely remove them whenever found.

I will upload source code of application I made and used for generating above prime numbers in some near-future post some time else.
.


Wednesday, August 17, 2022

FancyProgressbar - 3 - (User Control) - 180430Sa

  FancyProgressbar - 3 (User control)  
.
Version: 180430Sa
.
Other versions
Version Link
141204We Fancy Progressbar - Ver 2 - C Sharp
170410Mo FG Progressbar 03.01 - 170410Mo
.
Few days ago I specially searched on hard-drive of computer for an application I had made some years ago in c# (c sharp) for demonstrating a progressbar (user control). I had made that demonstration applicaton for testing progressbar usercontrol I had made in c# (c sharp). After finding that application I ran it for some time and after testing/revising it's different options I took and saved some screen-shots at different levels/states of application. I did that for sharing online. I had named that progressbar "FancyProgressbar - 3".
.
In this blog entry I am going to discus that progressbar in some detail.
.
First the purpose of making this progressbar was to have a progressbar which can display progress status of the process over it. This progressbar can display, user chose-able, following type of information over it:
.
  1. Progress status/state
    1. Ready
    2. Working
    3. Cancel
    4. Error
    5. Complete
  2. Progress percent
    1. Completed
    2. Remaining
  3. Time
    1. Elapsed
    2. Remaining
.
Following are some screen-shots of the above mentioned progressbar demonstrating application I made in c#.
.

.
[ (1) Application loaded]
Application is loaded and is ready for use.
.
.
.
.
[(1a) Application tab is active]
Application tab, out of it's three tabs, is active.
.
.
.
[(1a1) Error generation]
Generate ERROR during process option (CheckBox) is checked/selected. Purpose of this option is to have ability to generate ERROR programmatically during process for testing purpose. When this option is checked process randomly aborts between progress percent of 33 to 66.
.
.
.
[(1a2) Progressbar width]
Progressbar with is modified (increased). Purpose of this option is to have ability for test application to change width of progressbar for testing.
.
.
.
[(1a3) Progressbar text]
Progressbar text options are expended. Purpose of this option is to give ability to select different combination of text/information over progressbar.
.
.
.
[(1a4) Process related]
.
[(1a4a) Start button clicked]
[Process is running . . .] Start button is clicked and process is started and is running. Progressbar background color is light-Blue and progressbar color is dark-Green. Progressbar is displaying from left to right progress percent completed, time elapsed, progress state i.e. working, Time remaining, progress percent remaining.
.
.
.
[Process completed successfully] Start button was clicked and process was started and process is completed successfully. Progressbar background color is light-Blue and progressbar color is dark-Green. Progressbar is displaying from left to right progress percent completed, time elapsed, progress state i.e. working, Time remaining, progress percent remaining.
.
.
.
[(1a4b) Cancel button clicked]
During a running process Cancel button is clicked and process aborted itself. Progressbar color is changed to Orange.
.
.
.
[(1a4c) ERROR generated]
During a running process ERROR is generated programmatically. This happened because "Error generation" CheckBox was checked. Progressbar color is changed to Red.
.
.
.
[(1b) Help tab is active]
Useful information about application are displayed in this Help tab
.
.
.
[(1b1) About and Author]
In this image About and Author sections of Help tab are visible. About section displays basic information about application. Author section displays basic information about author of application i.e. me "Khursheed Fateh".
.
.
.
[(1b2) How to Use]
Help tab's "How to Use" section in simple text describes/explains how to use this application.
.
.
.
[(1b3) Features of Progressbar]
"Features of Progressbar" section of Help tab describes and explains different features of this application. This section is further divided into 2 parts. (Labels: Three type of information displayed over progressbar), (Status: Five status options for progressbar).
.
.
.
[(1c) Exit tab is active]
User can EXIT from this application only from here. This tab displays a button with text "EXIT FROM HERE". Clicking this button closes this application. This button occupies entire area of the tab and has red background color and white text color.
.
.
.
[(1d) Application Exiting methods]
.
[(1d1) Application System menu is expanded]
Application's system menu is expanded by clicking on the application/form icon on Left-Top of the application form.
.
.
.
[(1d2a) Close button of form is clicked]
Close button of the form situated on the right-top of the form is clicked and this opens a Hint window explaining how to exit from application.
.
.
.
.
[(1d2b) Close option of System menu clicked]
First application/form icon on the left top of the formis clicked. Second System menu is displayed. Third Close option from System menu is clicked. This opens a Hint window explaining how to exit from application.
.
.
.
[(1d2c) Alt+F4 is pressed on Keyboard]
Alt+F4 key combination is pressed from keyboard and this opens a Hint window explaining how to exit from application.
.
.
.
Colors used for Border and Background of this post
Color HSL RGB Hex
 
174°, 52%, 33% 40, 128, 119 #fcba03
 
174°, 62%, 90% 213, 245, 242 #d5f5f2
.

.
If there are any mistakes in this post then I will remove them whenever I will know about them.
.


Wednesday, June 16, 2021

N-Queen Puzzle Solver - 2 - 131124Su

  NQueen Puzzle Solver - 2  
.1);">.
.
Version - 131124Sun
.
Other versions
Version Link
None No other versions are available so far
.
I learned playing Chess from my father, in my childhood, on chessboard which my father won in some competition in AJK. All my siblings learned playing chess from our father and we often used to play chess with each other. As we grew playing chess with each other on that chessboard, chessboard and it’s chess-pieces started showing signs of decay because of it’s age and use.
.
So I put that chessboard in safe place to make sure chessboard did not get damaged any further and remain with us for next generations. For playing chess I bought a new chessboard and chess-pieces set. After doing so some decades ago I started trying to make computer game for Chess also.
.
During online research for making computer chess game I came across many chess puzzles like "N Queen Puzzle" and "Knight tour" etc. A few years earlier than that online research I had also read about these types of puzzles in books on AI programming (prolog, lisp) in "Liaquat Memorial Library - Karachi".
.
These chess puzzles inspired me to make my own application for solving them on computer. I kept making them using different softwares. First time I made “N Queen” and “Knight tour” puzzle solving software in HTML/JavaScript and last time in C# (In between attempts I no longer remember).
.
This post is about an application "N Queen - 2". I made this application in year 2013 in c# for solving N-Queen Puzzle using computer. This application can solve N-Queen puzzles from 4*4 to 30*30 size chessboards. Optionally it can save results in file also.
.
[ N Queen puzzle (definition) ]
The N queens puzzle is the Puzzle of placing N chess queens on an NxN chessboard so that no two queens threaten/attack each other; thus, a solution requires that no two queens share the same row, column, or diagonal.
.
[ Application's UI and Working: ]
Application's user interface and how to use it is explained in the following.
  1. user have to select chessboard side size on which depends how many Queens to place on chessboard. Count of Queens is equal to size of chessboard side.
  2. User also have to select whether to find first solution only or to find all solutions.
  3. User also have to select whether to save result to file or not.
    1. If save to file selected than use also have to select folder where results will be saved.
  4. Calculation is started by clicking Start button.
  5. Calculation is canceled by clicking Cancel button.
  6. Running results are displayed in Output form.
  7. Current status is displayed in status line.
  8. Application log is displayed in Combo-box.
Following are the screen shots of 'N Queen - 2' application with explanation.
.

.
[ Application is loaded ]
Application looks like in the following photo when loaded.
.
.
.

.
[ Application's Menu/Help menu expanded ]
Application's Menu/Help menu looks like this. It has options for displaying differentc infomations about application.
.
.
.

.
[ Application's Menu/Help/About form is displayed ]
Application's Help/About form is displayed. It displays basic information about application.
.
.
.

.
[ Application's Menu/Help/How-to-Use form is displayed ]
Application's Menu/Help/How-to-Use form is displayed. It displays  information about application's UI nnd how to use it.
.
.
.

.
[ Application's Menu/Help/Copyright form is displayed ]
Application's Menu/Help/Copyright form is displayed. It displays basic Copyright notice about application.
.
.
.

.
[ Chessboard size option expanded ]
Application looks like this when Chessboard size option is expanded.
.
.
.

.
[ Chessboard size selected ]
Application looks like this after Chessboard size option is selected.
.
.
.

.
[ Browseing for output folder ]
Application looks like this when it's "Save solution to file" option  is checked and "Choose folder for saving solutions" clicked.
.
.
.

.
[ Output folder selected/Created ]
Application looks like this when output folder is either selected or created.
.
.
.

.
[ Start button clicked ]
[ Process started ]
Application looks like this when 'Start' button is clicked and application starts finding solutions.form.
.
.
.

.
.
.
.

.
[ Saving solutions to file ]
Application looks like this during saving found solutions to file in selected/created folder.
.
.
.

.
[ Process Completed ]
Application looks like this when Job is completed. All solutions are found and optionally all solutions are saved to file.
.
.
.

.
[ Process Completed (ready) ]
Application looks like this when Job is completed and application is ready for new Job.
.
.
.

.
[ Cancel button clicked ]
Application looks like this when 'Cancel' button is clicked. On doing so application stops doing it's job and displays related messages.
.
.
.

.
[ Log combo-box expanded ]
Application looks like this when application completes it's job successfully/un-successfully and log combo-box is expanded.
.
.
.

.
[ N-Queen puzzle solutions for 8x8 board ]
This application solves N Queen puzzle for selected chessboard size and optionaly saves solutions to file in selected/created folder. Following is the content of a N Queen puzzle solution file when chessboard size was 8x8 and all solutions were required.
.
.
.

.
Colors used for Border and Background of this post
Color HSL RGB Hex
 
93, 51%, 40% 97, 154, 50 #619a32
 
93, 53%, 81% 204, 232, 181 #cce8b5
.

.
Enjoy  Complete Source code of application written and compiled in visual studio 2010 Ultimate by  me. Download it. Extract it. Read 'ReadMeFirst.txt' file and do as is explained in it.
.

.
If there are any mistakes in this post then I will remove them whenever I will know about them.
.


Thursday, June 10, 2021

FG Progressbar 03.01 - 170410Mo

  FG Progressbar - 3.1  
.1);">.
Version: 170410Mo
.
Other versions
Version Link
2 Fancy Progressbar - Ver 2 - C Sharp
.
Few month ago while going through posts on my this blog I reached on a post with title “Fancy Progressbar - Ver 2 - C Sharp”. After reading that post I searched on HDD of pc for the project discussed and shared in that post. In search result I found many more Progressbars made by me as UserControl in c# (c sharp) with different look and abilities.
.
Out of that search result list I found a progressbar project which was next version (version 3) of above mentioned progressbar project (version 2). I ran that version 3 few times and then made another project based on it for sharing here and named it “FG ProgressBar – 3.1”. I made some modification, improvements to UI and logic of the new project. When I found workings and looks of the new application Ok then I took it’s ScreenShots at it’s different stages. After that I added watermarks to all ScreenShots.
.
This progressbar version 3.1 application is a demo project. First it demonstrates a good and simple looking progressbar. Second it demonstrates how to find prime numbers between 2 randomly selected numbers with a gap of 100000000. Third it demonstrates how to create a form programmatically and use it to show Help information.
.
A simple looking progressbar:
This simple looking progressbar is actually made of 3 controls one TableLayoutPanel with one row and two columns and two Labels. First Label for showing completed progress and second Label for showing remaining progress. Resultant Progressbar is made to look simple and user friendly. Progressbar displays status of process end with 3 colors. Green is for SUCCESS, Orange is for CANCEL and Red is for ERROR. This progressbar’s use is demonstrated during finding of prime numbers.
.
Finding Prime numbers:
Application runs a long process for finding prime numbers between 2 randomly generated numbers with a gap of 100000000 and updates fancy progressbar based on calculated percentage of work done by that process for each number it processes. Method for finding prime number is not optimized for speed or space. It is used here for having a long process for Fancy progressbar demo.
.
Creating Form programmatically:
Help information is displayed through a form created dynamically / programmatically on the fly. First Form is created second a control is added, RichTextBox in this case, third some properties of Form and RichTextBox are set according to needs (like Help info to Text property of RichTextBox) and fourth form with Help information is displayed.
.
Application's UI and Working:
Application's user interface and how to use it is explained row wise in the following.
  1. This row displays title of application.
  2. This row displays minimum number for processing when "Start" button is clicked.
  3. This row displays maximum number for processing when "Start" button is clicked.
  4. This rows displays primes found count during processing.
  5. This rows displays primes found percent during processing.
  6. Thirs row is for telling long process to generate error or not.
  7. This row contains 2 buttons:
    1. Start: For starting lengthy process.
    2. Stop: For stoping/canceling lengthy process.
  8. This row contain 2 buttons:
    1. Show Help: This button displays help form for this application.
    2. Exit: This button is for exiting from this application.
  9. This row contains 3 controls:
    1. Lable for displaying application status.
    2. Progressbar_3.1: This is the progressbar for which thlis application is made.
    3. Label for displaying progress percentage.
Following are the screen shots of 'FG Progressbar - Ver 03.01' application with explanation.
.

.
[ Application is loaded ]
Application looks like in the following photo when loaded.
.
.
.

.
[ Application's Help form is displayed ]
Application's Help form looks like this and it is displayed when 'Show Help' button is clicked. It displays some basic information about application. Working of main Form is not blocked by display of Help form. Help window uses different color on each load which it randomly selects from "Black, Blue, Green, Purple, DarkOrange, Red and DarkCyan". I used creation date of the original project version 3 in Help info.
.
.
.

.
[ Start button clicked ]
[ Process started (Busy...) ]
Application looks like this when 'Start' button is clicked and application starts finding prime numbers between 2 randomly generated numbers. 'Start' button becomes disabled and 'Stop' button becomes enabled. In status line application shows that it is 'Busy...' and percentage of job done by progressbar and percentage number. It also shows number of Primes found and Primes found percentage in form.
.
.
.

.
[ Process Completed (Done) ]
Application looks like this when Job is completed. 'Start' button becomes enabled again and 'Stop' button becomes disabled. In status line it shows 'Done' and Progressbar and percentage label shows that 100% job is completed. Total Primes found and Primes found percentage are shown in different fields of form.
.
.
.

.
[ Process Completed (Ready) ]
Application looks like this when Job is completed. 'Start' button becomes enabled again and 'Stop' button becomes disabled. In status line it shows 'Ready' and Progressbar and percentage label shows that 100% job is completed. Total Primes found and Primes found percentage are shown in different fields of form.
.
.
.

.
[ Stop button clicked (Stoped) ]
Application looks like this when 'Stop' button is clicked. On doing so application stops doing it's job and shows 'Stoped' in status line. 'Start' button gets enabled and 'Stop' button gets disabled.
.
.
.

.
[ Stoped button clicked (Ready) ]
Application looks like this when 'Stop' button is clicked. On doing so application stops doing it's job and shows 'Ready' in status line. 'Start' button gets enabled and 'Stop' button gets disabled.
.
.
.

.
[ Generate Error Yes option checked ]
[ Application aborts on error (Error) ]
Application looks like this when 'Yes' opption is checked for Generate Error. On doing so application's long process generates devide by zero error and so stops doing it's job and shows 'Error' in status line. 'Start' and ' Stop' button gets disabled.
.
.
.

.
[ Application aborted on error (Ready) ]
Application looks like this when 'Yes' opption is checked for Generate Error. On doing so application's long process generates devide by zero error and so stops doing it's job and shows 'Ready' in status line. 'Start' button get enabled and 'Stop' button gets disabled.
.
.
.

.
[ Application's alert message on closing ]
On application closing application checks if background worker is working and if it finds background worker working then it displays message with options to close application anyway or leave background worker working.
.
.
.

.
Colors used for Border and Background of this post
Color HSL RGB Hex
 
51, 51%, 40% 071, 050, 154 #47329a
 
51, 53%, 81% 185, 174, 229 #b9aee5
.

.
Enjoy  Complete Source code of application written and compiled in visual studio 2010 Ultimate by  me. Download it. Extract it. Read 'ReadMeFirst.txt' file and do as is explained in it.
.

.
If there are any mistakes in this post then I will remove them whenever I will know about them.
.