Rosetta Code:Village Pump/Suggest a programming task: Difference between revisions

 
(43 intermediate revisions by 22 users not shown)
Line 9:
 
=Incomplete=
 
* c++ console command line app Name/fantasyname/itemname/etc generators, that takes input from the keyboard and appends them to text files, then all the text files are read and every combination of item is then dumped to a new text file.
 
 
==General==
Line 27 ⟶ 30:
** Display a date in various formats
** Something with [http://terrancalendar.com the Terran Computational Calendar] (and contribute to [https://github.com/terrancalendar/terrancalendar their Github project])
** Calculate yesterday's date
* Show creation, element insertion, element removal and enumeration of a "set" type that enforces constraints as described [[Talk:Symmetric difference#Set_type|here]]. (An invariant analog would be nice as well.)
* The [[:Category:Object oriented|Object oriented category]] is missing a lot of the basics like [[calling a method]].
Line 72 ⟶ 76:
* cat & tee: copy input to output, copy input to multiple outputs. I'm not sure of the best name for these tasks ("IO/cat" & "IO/tee"? "copy input to output"?). [[Input loop]] has some solutions that implement the first, but it doesn't explicitly say what should be done with input, and some solutions to `cat` and `tee` may not use loops (which is what's interesting about these tasks).
 
* We should maybe double check whether we are missing any tasks corresponding to algorithms listed at http://algo-visualizer.jasonpark.me/
* Collision detection between primitive geometric shapes: line-line, point-triangle, line-triangle, triangle-triangle (in both 2D and 3D)
 
* Images: Reading, modifying, and writing either a .PNG/.JPG or other common image type. (Currently, there's bitmap and PPM stuff, but this task is for somethign more practical.)
 
* It would be good to have an implementation of the Nelder-Mead gradient descent algorithm. https://en.wikipedia.org/wiki/Nelder-Mead_method This would be a good candidate for a generic driver (eg:c++ template class) accepting a function and returning the parameter(s) that map to the functions (apparent) minimum. --[[User:Bitrat|Bitrat]] 14:10, 17 January 2019 (UTC)
 
* Line simplification, Ramer–Douglas–Peucker algorithm
 
*A program which prints out 'Rainbow' to the screen, with each character being one color of the rainbow.
==Games==
* Connect Four (or more) with variable and standard game board (6 rows, 7 columns)
Line 193 ⟶ 201:
 
--[[User:Brnikat|Brnikat]] ([[User talk:Brnikat|talk]]) 15:03, 10 July 2015 (UTC)
* Implement a [[wp:Wa-Tor|Wa-Tor]] population dynamics simulator. --[[User:Cgibbons|Cgibbons]] 22:22, 3 Apr 2023 (UTC)
::Python implementation: [https://scipython.com/blog/wa-tor-world/]
 
===Database / Network===
Line 286 ⟶ 296:
 
===Mathematical Operations===
* Calculate the first 2001 digits of the square root of two.
* Task: bAckermann. The idea is to take the Ackermann function and find the sequence of all possible calls to the function sorted by number of recursions. The output would begin:
A(0,n) , A(1,0) , A(1,1) , A(2,0) , A(1,2) , A(1,3) , A(1,4) , A(1,5) , A(2,1) , A(1,6) , A(3,0) , A(1,7) , ...
Line 350 ⟶ 359:
 
==Implementation-specific==
* Show how your language supports separation of interface or specification from implementation.
 
==Language-specific==
Add a sample Makefile to demonstrate how to build a dummy executable for several programming languages (distinguish between several platforms: Linux,Windows,etc)
Line 433 ⟶ 444:
 
--[[User:Rabuf|Rabuf]] ([[User talk:Rabuf|talk]]) 20:47, 5 November 2013 (UTC)
 
 
==Unsorted==
I am trying to write the following instructions in Pharo or SmallTalk:
- a linked list with tests
- a simple program equivalent of javadoc system that generates a mini javadoc like html file for a class passed as argument.
 
 
Place new items here, if it's unclear where they belong.
 
=== Count Consonants ===
Create a program to count consonants in a string input by the user using the ASCII character set.
The program must only count the letters that are not vowels. It should not count white space, punctuation, control characters, or numeric digits.
For instance, and Ada solution is:
<lang Ada>
with Ada.Text_IO; use Ada.Text_IO;
 
procedure Main is
subtype letter is Character with
Static_Predicate => letter in 'A' .. 'Z' | 'a' .. 'z';
subtype Vowel is Character with
Static_Predicate => Vowel in 'A' | 'E' | 'I' | 'O' | 'U' |
'a' | 'e' | 'i' | 'o' | 'u';
subtype consonant is character with
dynamic_predicate => consonant in letter and then consonant not in vowel;
 
Input : String(1..1024);
length : natural;
consonant_count : Natural := 0;
begin
Put("Enter a string: ");
Get_Line(Item => Input, Last => length);
-- count consonants
for char of input(1..length) loop
if char in consonant then
consonant_count := consonant_count + 1;
end if;
end loop;
New_Line;
Put_Line(Input(1..Length));
Put_Line("contains" & consonant_count'image & " consonants.");
end Main;
</lang>
See also https://rosettacode.org/wiki/Count_how_many_vowels_and_consonants_occur_in_a_string.
[[user:wherrera|wherrera]]
 
=== Multiple Mice ===
If 2 or more USB mice (or trackballs / trackpads) are connected to the system, read the input of each separately (for multiple mouse pointers or for multiplayer game input).
 
=== Colorwheel ===
description
* [https://stackoverflow.com/questions/4235072/what-is-the-math-behind-the-colour-wheel SO]
 
Versions:
* [https://commons.wikimedia.org/wiki/File:HLSColorSpace.png continous]
* discrete: circle is divided into n sectors varying in hue. Each sector is divided into m levels along radial dimension varying in lightnes, like [https://theblog.adobe.com/the-power-of-the-palette-why-color-is-key-in-data-visualization-and-how-to-use-it/ here]
 
=== Operators polymorphism ===
Line 709 ⟶ 772:
 
=== ICMP Ping ===
Send an ICMP ping to some local resource, such as the current default gateway or even just 127.0.0.1 or ::1, and display information about the response or the absence of the response.
 
=== Generate a Regular Expression for a Range of Integers ===
=== Partitioning ==
 
Write a function that, given the integers 0 <= ''min'' < = ''max'', returns a regular expression that will match the decimal representation of any integer in the range [''min'', ''max'']. You may assume there are no thousand-separators, leading 0's, or other problematic characters in the string to be processed. You may also assume the caller of your function will prepend/append appropriate anchors (e.g., ^, $, or \b) depending on need, so don't include them. Don't use \d as an alias for [0-9] since \d can match weird unicode characters on some systems.
 
'''Example''':
 
''min'' = 1
 
''max'' = 31
 
f(''min'', ''max'') = [1-9]|[1-2][0-9]|3[0-1] /* possible result */
 
f(''min'', ''max'') = [1-9]|[12][0-9]|3[01] /* equally-valid alternate result */
 
'''Example''':
 
''min'' = 91
 
''max'' = 417
 
f(''min'', ''max'') = 9[1-9]|[1-3][0-9]{2}|4(0[0-9]|1[0-7]) /* possible result */
 
f(''min'', ''max'') = 9[1-9]|[1-3][0-9][0-9]|4(0[0-9]|1[0-7]) /* equally-valid alternate result */
 
 
Hint: Use a recursive, divide-and-conquer approach. You will have to handle cases where max contains more digits than min.
 
Bonus: support ranges containing negative integers.
 
=== Weighted Random ===
Pick a random item from a list of dozen items, where each item has different weight (rarity). If the language permits, the list should be made in a way that makes it easy to add new items without having to adjust the weights of the other items.
 
Gaming example: random treasure generation in roguelikes. I've found that this is extremely awkward to do in some languages, and simple in others.
 
=== Partitioning ===
Task for "partition an integer into X primes". For example, partition 19 into 3 primes could return 3+5+11.
 
<br>
-----
<br>
 
This request was just created today.
 
 
See the Rosetta Code task:
 
:* &nbsp; [http://rosettacode.org/wiki/Partition_an_integer_X_into_N_primes '''Partition an integer X into N primes'''].
 
 
-- [[User:Gerard Schildberger|Gerard Schildberger]] ([[User talk:Gerard Schildberger|talk]]) 03:48, 3 March 2017 (UTC)
 
=== Bron-Kerbosch algorithm ===
Implement any of the variants of the [[wp:Bron-Kerbosch_algorithm|Bron-Kerbosch algorithm]] for finding maximal cliques (maximal complete subgraphs) in an undirected graph.
 
This should likely be sorted under 1.2.2.1, Graph algorithms.
 
=== Radix-50 encoding and decoding ===
 
[[wp:DEC_Radix-50|Radix-50]] is a method of encoding a restricted character set, used by DEC to store compiler labels and filenames. Each 16-bit word stores three characters encoded as char1*40*40 + char2*40 + char3. The name Radix-50 comes from 50(octal) = 40(decimal).
 
Challenge:
* encode up to three characters into a single word, indicate what you do with invalid characters
* decode a single word into three characters, indicate what you do with invalid data (word>=40*40*40)
* encode a string, indicate what you do with invalid characters
* decode to a string, indicate what you do with invalid data (word>=40*40*40)
 
 
The character set to be used is:
" ABCDEFGHIJKLMNOPQRSTUVWXYZ$?%0123456789"
[[User:Jgh|Jgh]] ([[User talk:Jgh|talk]]) 17:14, 15 May 2020 (UTC)
 
:That sounds like a good idea for a task which will particularly appeal to the 'old timers' amongst us. Why don't you create a draft task for it and add an implementation to start the ball rolling.
[[User:PureFox|PureFox]] ([[User talk:PureFox|talk]]) 08:14, 17 May 2020 (UTC)
 
 
=== Modulo operation ===
The table [[wp:Modulo_operation#In_programming_languages]] deserves to be somewhere on this site, with additional information and features.
 
In my own docs (for Phix) I have this (as a suggestion for the kind of info I think would be useful):
x,y: -9,-4 -9,+4 +9,-4 +9,+4
remainder(x,y): -1 -1 +1 +1
mod(x,y): -1 +3 -3 +1 -- (matches C's % operator)
 
I was thinking there could be checkboxes to filter the list to languages that can and cannot get the results you need/prefer, have an infix operator (or two), work on integers and floating point values or not, and probably something about precedence and associativity. Also the availability of a divmod function, and whether native/bigint/gmp wrappers all agree.
 
A table would clearly be better than a long list of individual entries, I know we can do sorting ([[Rosetta_Code/Count_examples/Full_list|eg]]), I don't know whether filtering is possible. --[[User:Petelomax|Pete Lomax]] ([[User talk:Petelomax|talk]]) 08:06, 29 March 2021 (UTC)
 
=== Media files ===
Determine the duration of an audio or video file. Extract a thumbnail from a video file. --[[User:Petelomax|Petelomax]] ([[User talk:Petelomax|talk]]) 01:53, 1 August 2023 (UTC)
 
==Insufficient information==
7,795

edits