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

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

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

Переводил этот код с Pascal на C#
Листинг программы
  1. var
  2. InS, Word: string;
  3. Sum, Tmp, Num5, i: integer;
  4. procedure StrToFiveInt(NumberStr: string; var NumberVar: integer; var ErrorCode: integer);
  5. var
  6. i, Pow:integer;
  7. begin
  8. NumberVar := 0;
  9. Pow := 1;
  10. ErrorCode := 0;
  11. if length(NumberStr) = 0 then ErrorCode := 2
  12. else
  13. begin
  14. for i := length(NumberStr) downto 1 do
  15. begin
  16. if (NumberStr[i]>='0') and (NumberStr[i]<='4') then
  17. begin
  18. NumberVar := NumberVar + (ord(NumberStr[i])-ord('0')) * Pow;
  19. Pow := Pow * 5;
  20. end
  21. else
  22. begin
  23. ErrorCode := 1;
  24. end;
  25. end;
  26. end;
  27. end;
  28. //Основная программа
  29. begin
  30. read(InS);
  31. i := 1;
  32. Word := '';
  33. Sum := 0;
  34. Tmp := 0;
  35. for i := 1 to length(InS) do
  36. begin
  37. if (InS[i] = ' ') or (InS[i] = '.') then
  38. begin
  39. StrToFiveInt(Word, Num5, Tmp);
  40. if Tmp = 0 then
  41. begin
  42. Sum := Sum + Num5;
  43. end;
  44. Word:='';
  45. end
  46. else
  47. begin
  48. Word := Word + InS[i];
  49. end;
  50. end;
  51. StrToFiveInt(Word, Num5, Tmp);
  52. if Tmp = 0 then
  53. begin
  54. Sum := Sum + Num5;
  55. end;
  56. write(Sum);
  57. readln;
  58. end.
Получилось это, но на 24 строке выводит ошибку, помогите исправить.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Program_1
  7. {
  8. class Program
  9. {
  10. static void StrToFiveInt(string NumberStr, int NumberVar, int ErrorCode)
  11. {
  12. int Pow = 1;
  13. NumberVar = 0;
  14. ErrorCode = 0;
  15. if (NumberStr.Length == 0)
  16. {
  17. ErrorCode = 2;
  18. }
  19. else
  20. {
  21. for (int i = NumberStr.Length; i >= 0; i--)
  22. {
  23. if (NumberStr[i] >= '0' && NumberStr[i] <= '4')
  24. {
  25. NumberVar += Convert.ToByte(NumberStr[i]) - Convert.ToByte('0');
  26. Pow *= 5;
  27. }
  28. else
  29. {
  30. ErrorCode = 1;
  31. }
  32. }
  33. }
  34. }
  35. static void Main(string[] args)
  36. {
  37. string InS, Word;
  38. int Sum = 0, Tmp = 0, Num5 = 0;
  39. InS = Console.ReadLine();
  40. Word = "";
  41. for (int i = 0; i < InS.Length; i++)
  42. {
  43. if (InS[i] == ' ' || InS[i] == '.')
  44. {
  45. StrToFiveInt(Word, Num5, Tmp);
  46. if (Tmp == 0)
  47. {
  48. Sum += Num5;
  49. }
  50. Word = "";
  51. }
  52. else
  53. {
  54. Word += InS[i];
  55. }
  56. }
  57. StrToFiveInt(Word, Num5, Tmp);
  58. if (Tmp == 0)
  59. {
  60. Sum += Num5;
  61. }
  62. Console.Write(Sum);
  63. Console.ReadLine();
  64. }
  65. }
  66. }
Вводить нужно это: 100 у3 AS42 AS 22 77w. А выводить это: 37

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут