![]() |
|
|
#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
|
||||
|
||||
|
Спасибо что напомнили о кейс оф. Это существенно сократило код проекта, который сейчас создаю. Даже помогая новичкам развиваешь свое умение.
![]() |