Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 14.06.2018
Сообщений: 1

Перевод с языка Pascal (Delphi) в C#

14.06.2018, 10:41. Показов 2448. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите перевести код с Pascal в C#, заранее большое спасибо)

1). Дана действительная матрица размера N*M, все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы элемента с найденным значением.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const n=8;{количество строк}
       m=10;{количество столбцов}
Var a: array [1..n,1..m] of real;{данная матрица}
    i,j,k,l,v:integer;
    minj,maxi:real;
BEGIN
{заполнение матрицы произвольными положительными действительными числами от 0 до 99}
randomize;
For i:=1 to n do
 For j:=1 to m do
   a[i,j]:=random(100);
maxi:=-1;{так как все числа положительные (мы сами так заполнили)}
For i:=1 to n do begin
 minj:=a[i,1];{предположим что первый элемент каждой i-ой строки минимальный}
 For j:=2 to m do
  {сравниваем все остальные элементы строки с уже найденным минимальным}
  If a[i,j]<minj then begin{если он меньше уже найденного то}
                     minj:=a[i,j];{он минимальный}
                     v:=j;{сохраняем его номер столбца}
                    end;
{проверяем только что полученный элемент на максимум}
 If minj>maxi then begin{если верно то сохраняем его и его индексы}
                   k:=i;
                   l:=v;
                   maxi:=minj;
                 end;
end;
{Выводим искомый элемент и его индексы хоть в едите хоть в лабеле}
 
END.
2). Пусть дан файл целых чисел f. Определить, сколько раз в нем повторяется максимальное значение.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var f:file of integer;
    max,count,a:integer;
begin
assign(f,'myfile.txt');
reset(f);
max:=-MaxInt;
while not EOF(f) do
begin
   read(f,a);
   if (a>max) then max:=a;
end;
count:=0;
while not EOF(f) do
begin
   read(f,a);
   if (a=max) then inc(count);
end;
close(f);
writeln('count = ', count);
readln;
end.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.06.2018, 10:41
Ответы с готовыми решениями:

Перевод с языка Pascal на C#: Заменить все члены, следующие за членом с наибольшим значением
Program n1; Uses Crt; var a: array of integer; k,m,i,j,s: integer; begin for i:=1 to 18 do begin for j:=1 to 12 do begin ...

Перевод с языка Pascal на C#: Заменить все члены, следующие за членом с наибольшим значением
Помогите,пожалуйста,кто-нибудь с программой. Надеюсь,что я все правильно делал в паскале,но как перевести в c#. Помогите люди добрые ...

Из языка Pascal надо преобразовать в C#
Из языка Pascal надо преjбразовать в C#: Код: uses GraphABC; type punctum = record // тип точка и 2 его поля - координаты...

2
171 / 92 / 71
Регистрация: 10.05.2014
Сообщений: 432
14.06.2018, 12:38
Лучший ответ Сообщение было отмечено Tim Kasymov как решение

Решение

Цитата Сообщение от Tim Kasymov Посмотреть сообщение
1). Дана действительная матрица размера N*M, все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы элемента с найденным значением.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const n=8;{количество строк}
       m=10;{количество столбцов}
Var a: array [1..n,1..m] of real;{данная матрица}
    i,j,k,l,v:integer;
    minj,maxi:real;
BEGIN
{заполнение матрицы произвольными положительными действительными числами от 0 до 99}
randomize;
For i:=1 to n do
 For j:=1 to m do
   a[i,j]:=random(100);
maxi:=-1;{так как все числа положительные (мы сами так заполнили)}
For i:=1 to n do begin
 minj:=a[i,1];{предположим что первый элемент каждой i-ой строки минимальный}
 For j:=2 to m do
  {сравниваем все остальные элементы строки с уже найденным минимальным}
  If a[i,j]<minj then begin{если он меньше уже найденного то}
                     minj:=a[i,j];{он минимальный}
                     v:=j;{сохраняем его номер столбца}
                    end;
{проверяем только что полученный элемент на максимум}
 If minj>maxi then begin{если верно то сохраняем его и его индексы}
                   k:=i;
                   l:=v;
                   maxi:=minj;
                 end;
end;
{Выводим искомый элемент и его индексы хоть в едите хоть в лабеле}
 
END.
Алгоритм, конечно, интересный, но на шарпе не особо нужный, ибо есть Linq

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const int n = 8, m = 10;
var arr = new int[n][];
int k = 0, l = 0, v = 0;
double minj = 0, maxi = -1;
 
for (int i = 0; i < n; i++)
{
    arr[i] = new int[m];
    for (int j = 0; j < m; j++)
    arr[i][j] = new ThreadLocal<Random>(() => new Random(Guid.NewGuid()
        .GetHashCode())).Value.Next(100);
}
 
var res = arr
    .Select((x, i) => new
            {Value = x.Min(),IIndex = i,
            JIndex = arr[i].ToList().IndexOf(x.Min())}
            ).OrderByDescending(x=>x.Value).FirstOrDefault();
 
Console.WriteLine($"Max: {res.Value}\nIndex I: {res.IIndex}\nindex J: {res.JIndex}");
Console.ReadLine();
P.S. не забудь добавить пространства имен!
C#
1
2
3
using System.Collections.Generic;
using System.Linq;
using System.Threading;
1
 Аватар для andrey_f
884 / 537 / 228
Регистрация: 21.02.2011
Сообщений: 5,705
14.06.2018, 13:34
Цитата Сообщение от Tim Kasymov Посмотреть сообщение
Пусть дан файл целых чисел f. Определить, сколько раз в нем повторяется максимальное значение.
типовая задача
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.IO;
 
   class Program
    {
        static void Main(string[] args)
        {
            int n = 10;
            StreamReader file2= new StreamReader("out1.txt");//считывание с файла
             int [] arr2=new int[n];
             for (int i = 0; i < n; i++)
                {
                    arr2[i] = int.Parse(file2.ReadLine());
            Console.WriteLine(arr2[i]);
        }
            int max = arr2[0];
        int count = 0;
            for (int i = 0; i < n; i++)
                {
                    if (max < arr2[i])
                    {
                        max = arr2[i];
                    }
                }
        for (int i = 0; i < n; i++)
        {
            if (max == arr2[i]) count++;
        }
        StreamWriter file3 = new StreamWriter("out2.txt");//запись в файл значений мин и макс 
        Console.WriteLine("\n Maximum element=" + max + " ," + count);
            file3.WriteLine("\n Maximum element=" + max + " ," + count);
            file3.Close();
        Console.ReadLine();
        }
    }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.06.2018, 13:34
Помогаю со студенческими работами здесь

Транслятор с подмножества языка Pascal
Добрый день! С подобным заданием столкнулся впервые и если честно, то вообще не понимаю на данный момент способ его реализации. Хотелось бы...

Перевод кода программы с языка C++ на C#
Здравствуйте! Можно ли перевести этот код с С++ на С#? Понимаю, что просьба специфическая,но сам программировать на с # не умею. ...

Перевод программы с языка C++ на язык C#
Есть код на языке C++. Помогите, пожалуйста, перевести, т.е. написать то же самое на языке C# . Спасибо! ...

Перевод программы с языка C++ на язык C#
Есть код на языке C++. Помогите, пожалуйста, перевести, т.е. написать то же самое на языке C# . Спасибо! #include...

Перевод программы с языка C++ на язык C#
#include &lt;iostream&gt; using namespace std; int reverse_number(int number) { int n = 0; while(number) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru