У меня возникли проблемы с преобразованием этой домашней проблемы в псевдокод. Я хотел бы знать, правильна ли логика.Правильно ли логика этого псевдокода с массивами?
Проблема:
Написать программу, которая печатает следующие элементы: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, до сего вводимого пользователя значения. Программа не должна печатать более 10 номеров на строку. Последняя напечатанная строка может быть меньше 10. Помимо первого числа и последнего номера, должно быть указано «,», разделяющее все числа. Последний номер в каждой строке должен иметь «.» После него. Перед выходом из него также следует распечатать сумму всех элементов: рассчитать сумму предметов и ввести результат. Например, если пользователь ввел 76 результат должен быть следующим Образец запуска вашей программы должен быть следующим:
Введите номер (> = 1 и < = 100): 76 Ваша последовательность
1, 3, 5, 7, 9, 11, 13, 15, 17, 19. 21,23, 25, 27, 29, 31, 33, 35, 37, 39. 41,43, 45, 47 , 49, 51, 53, 55, 57, 59. 61,63, 65, 67, 69, 71, 73, 75.
сумма перечисленных выше элементов 1444.
Моя попытка:
Algorithm ElementsSequenceSeries
// declare variables
Var num, count, odd, sum, arrayOne, arrayTwo, arrayThree, arrayFour, arrayFive
// initialize variables
Count = 0; sum = 0; odd=0; arrayOne = 0; arrayTwo = 0; arrayThree = 0; arrayFour = 0; arrayFive = 0;
<BeginAlg>
Print (Input 1<= num <= 100);
Count = count + 1;
Odd = (count*2)–1; // create a list of odd numbers up to a user-defined value less than 100
If (num > odd)
Print(Odd);
// For the indices 0 to 8, place a comma after each element of the array.
For (num <=20 and num> odd) and (arrayOne[9]= {0,1,2,3,4,5,6,7,8})
Print (arrayOne[]= {0,1,2,3,4,5,6,7,8} + “,”);
EndFor
// For the index 9, place a fullstop after it.
For (num <=20 && num> odd) and (array One[]= 9)
Print arrayOne[]= 9 + “.”)
EndFor
For (num <=40 and num> odd) and (arrayTwo[]= {0,1,2,3,4,5,6,7,8})
Print (arrayTwo[]= {0,1,2,3,4,5,6,7,8} + “,”);
EndFor
For (num <=40 and num> odd) and (arrayTwo[]= 9)
Print arrayTwo[]= 9 + “.”)
EndFor
For (num <=60 and num> odd) and (arrayThree[]={0,1,2,3,4,5,6,7,8})
Print (arrayThree[]= {0,1,2,3,4,5,6,7,8} + “,”);
EndFor
For (num <=60 and num> odd) and (arrayThree[]= 9)
Print arrayThree[]= 9 + “.”)
EndFor
For (num <=80 and num> odd) and (arrayFour[]={0,1,2,3,4,5,6,7,8})
Print (arrayFour []= {0,1,2,3,4,5,6,7,8} + “,”);
EndFor
For (num <=80 and num> odd) and (arrayFour []= 9)
Print arrayFour []= 9 + “.”)
EndFor
For (num <=100 and num> odd) and (arrayFive[]={0,1,2,3,4,5,6,7,8})
Print (arrayFive []= {0,1,2,3,4,5,6,7,8} + “,”);
EndFor
For (num <=100 and num> odd) and (arrayFive []= length)
Print arrayFive []= length + “.”);
EndFor
EndIf
Sum = arrayOne, arrayTwo, arrayThree, arrayFour, arrayFive;
Print(sum);
<EndAlg>
Я не понимаю count = 0; в конце объясните пожалуйста. Почему count = 0? Разве мы не увеличиваем? Печать («n.») Не должна быть одной для каждой строки? Я все еще новичок в программировании, пожалуйста, несите меня. Я ценю ваше время и силы. – TechFool121
эй была ошибка, я исправил ее сейчас, на самом деле подсчет используется для отслеживания количества элементов, напечатанных в строке, так как задано вопрос о том, что программа должна печатать меньше или макс. 10 элементов подряд, сбросьте счет до 0, который он станет 10 (0-9 для 10 элементов.). – abhinash
hey "n" используется для хранения введенного числа. Он неизменен во всей программе. так как нам нужно распечатать все нечетные числа до n, нам нужна переменная, которая продолжает меняться, что делается здесь «i». После каждого цикла он продолжает увеличиваться на 2. i.e, для первого цикла это будет 1., для второго цикла это будет 3, пока оно не станет меньше n. поэтому нам нужно напечатать i, чтобы выполнить нашу работу. Когда цикл истекает, мы печатаем все числа до n, поэтому требуется печать n в течение одного времени. – abhinash