Исправить конвертированный код с Pascal - C#
Формулировка задачи:
Переводил этот код с Pascal на C#
Получилось это, но на 24 строке выводит ошибку, помогите исправить.
Вводить нужно это:
100 у3 AS42 AS 22 77w.
А выводить это:
37
Листинг программы
- 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.
Листинг программы
- 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();
- }
- }
- }
Решение задачи: «Исправить конвертированный код с Pascal»
textual
Листинг программы
- procedure StrToFiveInt(NumberStr: string; var NumberVar: integer; var ErrorCode: integer);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д