Одномерные массивы (редактирование / исправление) код под Windows Forms)

Добрый ночи всем! а кому-то утра)

Ситуация следующая: есть задачи, которые необходимо решить, но ОНИ УЖЕ РЕШЕНЫ и есть код (например от похожих задач), можете ,пожалуйста, его отредактировать под Windows Forsm т.к у самого, если честно: ни черта не получается(

ЗАДАЧА 1: Для N<=100.
Дан массив натуральных чисел А(N), значения элементов которого
лежат в диапазоне [1, 200].
**Найти количество тех элементов массива, которые являются палиндромами (т.е. читаются одинаково слева направо и справа налево), а также
найти минимальный элемент среди тех, цифровая запись которых содержит цифру 0 и не содержит цифру 8. **

Код от похожей задачи : ( Найти количество тех элементов массива, которые являются палиндромами (т.е.
читаются одинаково слева направо и справа налево), а также найти минимальный элемент среди тех, цифровая запись которых
дает сумму, кратную трем)

bool thisIsPalindrome(int n);
 
int _tmain(int argc, _TCHAR* argv[])
{   
    srand((int)time(NULL));
    int const n = 100;
    int arr [n], i,counter = 0, min = 150 ;
    //заполнение массива
    for (i = 0; i<n; i++)
    {
        arr [i] = rand() % 101;
        int b = arr [i];
        if (thisIsPalindrome(b))
        {
            counter++; 
            
        }
        if (arr [i]/3*3 == arr[i] && min > arr [i] && arr [i]!=0)
            
            min = arr [i];
    }
    cout<<"counter Palindrome = "<<counter<< endl;
    if (min == 150) 
    cout<<"min not found "<< endl;
    else
    cout<<"min = "<<min<< endl;
 
    _getch();
    return 0;
}
 
bool thisIsPalindrome(int n)
{   char buffer[100] ;
    
    _itoa_s (n,buffer,10);
    
    string wordString  = "";
        wordString = (string)buffer;
   
       for (size_t i = 0; i < wordString.length()/2; ++i)
       {
      if (tolower((wordString[i])) != tolower(wordString[wordString.length() - i - 1]))
         return false;
   }
   
   return true; 
}

ЗАДАЧА 2: Указания к решению: Ввод элементов массива выполнить с помощью датчика случайных чисел. Для всех вариантов N<=100.
Дан массив действительных чисел А(N), значения элементов которого лежат в диапазоне [a,b].
Отсортировать по неубыванию абсолютных величин элементы массива,
находящиеся между последним, дробная часть которого больше 0.5 и
первым, абсолютное значение которого больше 100. Использовать алгоритм сортировки вставкой.

Код для этой же задачи с таким же условием :

Procedure Rikiuoti(var B:TMas;m:integer);
    var i,j,c:integer;
        str:string;
Begin
    For i:=1 to m do
    For j:=1 to m-1 do
    if B[j].Sk>B[j+1].Sk then
        Begin
        c:=B[j].Sk;B[j].Sk:=B[j+1].Sk;B[j+1].Sk:=c;
        str:=B[j].Name;B[j].Name:=B[j+1].Name;B[j+1].Name:=str;
        End;

ЗАДАЧА 3 : Ну и если у вас будут как-то идеи, мнения по поводу решения, то тоже буду благодарен.
Указания к решению. Для ввода чисел использовать генератор случайных чисел. Для всех вариантов N<=100. Дан массив целых чисел А(N).
Отсортировать элементы массива в порядке убывания суммы цифр в
записи числа, а затем из каждой группы повторяющихся элементов оставить по одному. Использовать алгоритм сортировки выбором.

Буду очень благодарен за ваше мнение, варианты и помощь!

Так а проблема в чем именно? Что пробовали? Что не получается?

Это ж учебные задачи предназначенные для практики при изучении. Просить кого-то сделать их за вас — не эффективный способ обучения.
Пробуйте что-то сделать, гуглить, формулируйте конкретные вопросы (а во время формулирования может и решение найдется :rubberduck2:).

Это на C# или C++/CLI надо?
Если второе, то странно и печально, потому что брать этот язык в .NET есть смысл только в некоторых специфичных ситуациях (связывание кода/библиотек на обычном С++ с кодом для .NET), в остальных случаях если надо .NET, то намного проще писать на C#.
Его даже Майкрософт уже давно не рекомендует для таких целей, убрали шаблон для C++/CLI винформс проекта в новых VS и т.д.

Как-то мудренно ТС хочет чтобы вместо него делали лабы.

сдавайте раз уже решены.

Как вы определили что приведенный код отредактированный под Forms соотвествует заданиям, ведь

?

В задании 2, какая-то странная пузырьковая сортировка вместо вставки

Он имел в виду, что сделаны (найдены :slight_smile: ) не под винформс, а надо под винформс.

О, прикольно, имя функции на литовском. :partyparrot:

Но да, я бы не сказал, что это похожая задача. Это обычная сортировка пузырьком (причем еще в массиве лежат не просто значения, а ключи и значения). Видимо там, где вы это нашли, кто-то просто выложил какой-то свой древний код про сортировку. Непонятно зачем, их и в википедии полно (и для нужной вам сортировки вставками тоже) в намного более понятном виде.

:slight_smile:

Нравится мне числа в текст конвертировать :wink: Это к 1му заданию, хотя для преподавателя наверно нужно и фукции через массивы решать

using System;

using System.Linq;
using System.Linq.Expressions;
using System.Collections;
using System.Collections.Generic;

using System.Text;
using System.Text.RegularExpressions;


					
public class Program
{
	public static void Main()
	{	
		Random rnd = new Random();
		int N = rnd.Next(15);
		int[] arr = new int [N];
		int palindromCount = 0;
		int minimumHas0ButNot8 = 201;
		for(int i = 0; i < N; i++) 
		{
			arr[i] = rnd.Next(200);
			Console.WriteLine("arr[{0}]: {1}",i,arr[i]);
			if (isPalindrom(arr[i])) {
				Console.WriteLine("{0} is Palidrom",arr[i]);
				palindromCount++;
			}
			if (has0ButNot8(arr[i])) {
				Console.WriteLine("{0} is has0ButNot8",arr[i]);
				minimumHas0ButNot8 = arr[i]<minimumHas0ButNot8 ? arr[i] : minimumHas0ButNot8;
			}
		}
		Console.WriteLine("Palindrom:{0}\nMin Has 0 but not 8:{1}",palindromCount, minimumHas0ButNot8);
	}
	public static bool isPalindrom(int number)
	{
		char[] charArray = number.ToString().ToCharArray();
    	Array.Reverse( charArray );
		var reversed = new string( charArray );
    	return number == Convert.ToInt32(reversed);
	}
	
	public static bool has0ButNot8(int number)
	{
		List<char> stringList = number.ToString().ToCharArray().ToList();
    	return stringList.Contains('0') && !stringList.Contains('8');
	}
	

}

Других заданий сейчас нету желания решать :wink: