Исправить конвертированный код с Pascal - C#

Узнай цену своей работы

Формулировка задачи:

Переводил этот код с Pascal на C#
var
  InS, Word: string;
  Sum, Tmp, Num5,  i: integer;
 
procedure StrToFiveInt(NumberStr: string; var NumberVar: integer; var ErrorCode: integer); 
var
  i, Pow:integer;
begin
  NumberVar := 0;
  Pow := 1;
  ErrorCode := 0; 
  if length(NumberStr) = 0 then ErrorCode := 2 
  else
  begin
    for i := length(NumberStr) downto 1 do
    begin
      if (NumberStr[i]>='0') and (NumberStr[i]<='4') then
      begin
        NumberVar := NumberVar + (ord(NumberStr[i])-ord('0')) * Pow;
        Pow := Pow * 5;
      end
      else
      begin
        ErrorCode := 1;
      end;
    end;
  end;
end;
 
//Основная программа
begin
  read(InS);
  i := 1;
  Word := '';
  Sum := 0;
  Tmp := 0;
  for i := 1 to length(InS) do
  begin
    if (InS[i] = ' ') or (InS[i] = '.') then 
    begin
      StrToFiveInt(Word, Num5, Tmp); 
      if Tmp = 0 then 
      begin
        Sum := Sum + Num5;
      end;
      Word:=''; 
    end
    else
    begin
      Word := Word + InS[i];
    end;
  end;
  StrToFiveInt(Word, Num5, Tmp);
  if Tmp = 0 then
  begin
    Sum := Sum + Num5;
  end;
  write(Sum);
  readln;
end.
Получилось это, но на 24 строке выводит ошибку, помогите исправить.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Program_1
{
    class Program
    {
        static void StrToFiveInt(string NumberStr, int NumberVar, int ErrorCode)
        {
            int Pow = 1;
            NumberVar = 0;
            ErrorCode = 0;
            if (NumberStr.Length == 0)
            {
                ErrorCode = 2;
            }
            else
            {
                for (int i = NumberStr.Length; i >= 0; i--)
                {
                    if (NumberStr[i] >= '0' && NumberStr[i] <= '4')
                    {
                        NumberVar += Convert.ToByte(NumberStr[i]) - Convert.ToByte('0');
                        Pow *= 5;
                    }
                    else
                    {
                        ErrorCode = 1;
                    }
                }
            }
        }
        static void Main(string[] args)
        {
            string InS, Word;
            int Sum = 0, Tmp = 0, Num5 = 0;
            InS = Console.ReadLine();
            Word = "";
            for (int i = 0; i < InS.Length; i++)
            {
                if (InS[i] == ' ' || InS[i] == '.')
                {
                    StrToFiveInt(Word, Num5, Tmp);
                    if (Tmp == 0)
                    {
                        Sum += Num5;
                    }
                    Word = "";
                }
                else
                {
                    Word += InS[i];
                }
            }
            StrToFiveInt(Word, Num5, Tmp);
            if (Tmp == 0)
            {
                Sum += Num5;
            }
            Console.Write(Sum);
            Console.ReadLine();
        }
    }
}
Вводить нужно это: 100 у3 AS42 AS 22 77w. А выводить это: 37

Решение задачи: «Исправить конвертированный код с Pascal»

textual
Листинг программы
procedure StrToFiveInt(NumberStr: string; var NumberVar: integer; var ErrorCode: integer);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5