![]() |
|
#16
|
||||
|
||||
![]() Цитата:
Нули получаются потому, что матрицы А и В пустые. Их нужно заполнить исходными данными. В этом коде вы просто объявили матрицы А и Б и попытались получить матрицу С, которая является их произведением. Соответственно 0*0=0. Еще хочу Вам подсказать, что в цикле "for to do" блок "begin end" используется только в случае, если в цикле выполняется 2 и более операций. Новый цикл - это одна операция. пример: Код:
for i:=1 to 2 do for j:=1 to 2 do begin writeln(i); writeln(j); end; У Вас есть все возможности найти всю информацию в интернете. Циклы: for, while, repeat Двумерные массивы Умножение матриц Последний раз редактировалось MarlboroRed, 28.11.2012 в 19:29. |
#17
|
|||
|
|||
![]() Цитата:
Буду Вам весьма признательна! И это не первый курс, а третий, просто я перевелась, и вот так попала - на программирование. Всю ту информацию, которую Вы предложили я уже почти перелопатила. Но первые две ссылки, - этот сайт я ещё не встречала, спасибо! Если я убираю begin после каждого цикла, то все цифры просто выстраиваются в вертикальный ряд. "матрицы А и В пустые. Их нужно заполнить исходными данными" --- а куда, в какое место в коде вводить эти данные? Последний раз редактировалось Guneska, 28.11.2012 в 23:07. |
#18
|
|||
|
|||
![]() Цитата:
Цитата:
![]() вводить хоть сразу в описании переменной в круглых скобках если они фиксированы Код:
arr:array[1..4, 1..3] of integer = ((1,-1,3), (0,0,0), (1,4,0), (4,-1,-1)); |
#19
|
|||
|
|||
![]() Цитата:
Большое спасибо! |
#20
|
|||
|
|||
![]() нашла на этом сайте (http://devels.ru/index.php?what=art&p=106), кажется элементарное объяснение перемножения матриц, но началась вот такая лобуда, как на скриншотах. С чем это может быть связано и как решить эту проблему?
Да, и чёрное окно с результатом не закрывается ни по энтеру, ни нажатием на крестик (справа сверху). Нашла ошибку - исправила. УРА! Третья лабораторная сделана! Но впереди ещё 4,5,6,7,8 ![]() Надеюсь поможете, если снова обращусь! Спасибо всем огромнейшее! Последний раз редактировалось Guneska, 02.12.2012 в 18:03. |
#21
|
|||
|
|||
![]() Доброго времени суток, уважаемые форумчане.
Помогите, пожалуйста, перерыла кучу информации, и теперь уже запуталась - моё задание на перестановку или сортировку элементов: "Имеется строка, содержащая буквы и цифры. Преобразуйте эту строку так, чтобы сначала в ней шли все цифры, а потом - все буквы исходной строки. Допустимые символы - цифры, прописные и строчные латинские буквы. Пример: исходная строка - ad2e57b6; результат - 2576adeb". Написать нужно в консольном приложении. |
#22
|
|||
|
|||
![]() находишь любой готовый алгоритм сортировки например массива и прикручиваеш его к символам в строке
|
Этот пользователь сказал Спасибо robt за это полезное сообщение: | ||
Guneska (05.12.2012)
|
#23
|
||||
|
||||
![]() Цитата:
Код:
program Project2; {$APPTYPE CONSOLE} uses SysUtils; var str, numbers, letters, res1,res2: string; len,i,j: integer; begin numbers:='1234567890'; letters:='qwertyuiopasdfghjklzxcvbnm'; write('Vvedite stroku: '); readln(str); // записываем исходную строку в переменную str len:=length(str); //Записываем в переменную len длинну строки for i:=1 to len do // Цикл от 1 до конца строки for j:=1 to 10 do //Цил от 1 до 10 (количество цифр) { Если символ i строки str равен символу j строки numbers тогда записываем в res1 по принципу: старая информация в res1 + символ строки} if str[i]=numbers[j] then begin res1:=res1+str[i]; break; //Прерывание цикла end; for i:=1 to len do // Цикл от 1 до конца строки for j:=1 to 26 do // Цил от 1 до 26 (количество букв в алфавите) { Если символ i строки str равен символу j строки letters тогда записываем в res2 по принципу: старая информация в res2 + символ строки} if str[i]=letters[j] then begin res2:=res2+str[i]; break; //Прерывание цикла end; writeln('Resultat: ', res1,res2); //Выводим результат readln; end. Первый блок циклов "анализирует" и записывает в одну строку res1 все цифры из исходной строки. Второй блок циклов записывает в res2 все буквы строки. В качестве благодарности произнеси тост за мое здоровье ![]() Последний раз редактировалось MarlboroRed, 05.12.2012 в 22:31. |
Этот пользователь сказал Спасибо MarlboroRed за это полезное сообщение: | ||
Guneska (05.12.2012)
|
#24
|
|||
|
|||
![]() Цитата:
Огромнейшее Вам спасибо! Тост был произнесён за чашкой чёрного чая, теперь Вы будете жить долго и счастливо ![]() Буду сидеть разбирать код, чтобы как можно меньше тратить ваше время на такую мелочь, как я))) |
#25
|
|||
|
|||
![]() Цитата:
Простите, а почему вы использовали "break"? Вы закомментировали это как прерывание цикла, но почему Вы его здесь использовали? Зачем? Последний раз редактировалось Guneska, 07.12.2012 в 23:05. |
#26
|
||||
|
||||
![]() Цитата:
По моему объяснение получилось более запутанным, чем сам исходный код. ![]() Кстати код очень не оптимальный и я не могу на него спокойно смотреть. ![]() Тот "кусок" программы в котором циклы можно сократить как минимум к такому виду, с единственным циклом: Код:
for i := 1 to len do begin case str[i] of '0'..'9': res1 := res1 + str[i]; 'a'..'z', 'A'..'Z': res2 := res2 + str[i]; end; end; |
Эти 2 пользователя(ей) сказали Спасибо poli-smen за это полезное сообщение: | ||
Guneska (08.12.2012),
MarlboroRed (08.12.2012)
|
#27
|
|||
|
|||
![]() Цитата:
Да, Вы правы, прописные буквы игнорируются. Подставила Ваше творение - и всё получилось, спасибо! Только чуть-чуть начала разбираться с "for .. to .. do", как теперь снова нужно бежать искать что такое "case" и с чем его едят ![]() Спасибо, что не даёте расслабиться! ![]() |
#28
|
||||
|
||||
![]() Спасибо что напомнили о кейс оф. Это существенно сократило код проекта, который сейчас создаю. Даже помогая новичкам развиваешь свое умение.
![]() |