Кто-нибудь посмотрите на это! Нужен совет!!
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
-
- Сообщения: 6
- Зарегистрирован: 06 янв 2008, 17:58
В общем задача такова: Дана символьная матрица S(7,7). Определить номера тех
строк матрицы, которые содержат больше цифр, чем других символов.
Я вывожу эту матрицу из звездочек и цифр. с вводом матрицы вроде нет проблем, но вот с остальным что-то не лады....((((((( Буду очень благодарен за советы..!!!!!
rogram Matrica;
{$APPTYPE CONSOLE}
uses
SysUtils;
var a:array[1..20,1..20] of char;
b:array [1..10] of char = ('0','1','2','3','4','5','6','7','8','9');
i,j,n,m,z,ch,index:integer;
begin
writeln('Vvedite koli4ectvo ctrok(n) i ctolbcov(m): ');
readln(n,m);
writeln('VVedite postro4no ',n,' strok po ',m, ' elementov');
for i:=1 to n do
begin
for j:=1 to m do read(a[i,j]);
readln;
end;
writeln('VVedenniy massiv:');
for i:=1 to n do
begin
for j:=1 to m do write(a[i,j]:2);
writeln;
readln;
end;
begin
for i:=1 to n do
begin
ch:=0;
z:=0;
for j:=1 to m do
if a[i,j]=b then
inc(ch);index:=i;
if a[i,j]='*' then
inc(z);
end;
begin
if ch>z then
writeln('nomera strok=',index,);
end;
строк матрицы, которые содержат больше цифр, чем других символов.
Я вывожу эту матрицу из звездочек и цифр. с вводом матрицы вроде нет проблем, но вот с остальным что-то не лады....((((((( Буду очень благодарен за советы..!!!!!
rogram Matrica;
{$APPTYPE CONSOLE}
uses
SysUtils;
var a:array[1..20,1..20] of char;
b:array [1..10] of char = ('0','1','2','3','4','5','6','7','8','9');
i,j,n,m,z,ch,index:integer;
begin
writeln('Vvedite koli4ectvo ctrok(n) i ctolbcov(m): ');
readln(n,m);
writeln('VVedite postro4no ',n,' strok po ',m, ' elementov');
for i:=1 to n do
begin
for j:=1 to m do read(a[i,j]);
readln;
end;
writeln('VVedenniy massiv:');
for i:=1 to n do
begin
for j:=1 to m do write(a[i,j]:2);
writeln;
readln;
end;
begin
for i:=1 to n do
begin
ch:=0;
z:=0;
for j:=1 to m do
if a[i,j]=b then
inc(ch);index:=i;
if a[i,j]='*' then
inc(z);
end;
begin
if ch>z then
writeln('nomera strok=',index,);
end;
Ууу...
Проверка:
if (a[i,j]<='9') and (a[i,j]>='0')
Все, больше ничего не надо. Массив b не нужен совершенно
В остальной логике разбираться сложно, используйте тег [ code] - [ /code] (без пробела), а то нечитабельно
Проверка:
if (a[i,j]<='9') and (a[i,j]>='0')
Все, больше ничего не надо. Массив b не нужен совершенно
В остальной логике разбираться сложно, используйте тег [ code] - [ /code] (без пробела), а то нечитабельно
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
-
- Сообщения: 6
- Зарегистрирован: 06 янв 2008, 17:58
Спасибо, но извини что-то я непонял:
Вот код:
Вот код:
Код: Выделить всё
rogram Matrica;
{$APPTYPE CONSOLE}
uses
SysUtils;
var a:array[1..20,1..20] of char;
b:array [1..10] of char = ('0','1','2','3','4','5','6','7','8','9');
i,j,n,m,z,ch,index:integer;
begin
writeln('Vvedite koli4ectvo ctrok(n) i ctolbcov(m): ');
readln(n,m);
writeln('VVedite postro4no ',n,' strok po ',m, ' elementov');
for i:=1 to n do
begin
for j:=1 to m do read(a[i,j]);
readln;
end;
writeln('VVedenniy massiv:');
for i:=1 to n do
begin
for j:=1 to m do write(a[i,j]:2);
writeln;
readln;
end;
begin
for i:=1 to n do
begin
ch:=0;
z:=0;
for j:=1 to m do
if a[i,j]=b[i] then
inc(ch);index:=i;
if a[i,j]='*' then
inc(z);
end;
begin
if ch>z then
writeln('nomera strok=',index,);
end;
-
- Сообщения: 6
- Зарегистрирован: 06 янв 2008, 17:58
В общем у меня не получается с выводом номера строки где больше цифр!!
- Turboworld
- Сообщения: 29
- Зарегистрирован: 27 дек 2007, 23:31
- Контактная информация:
хорошим стилем было бы писать цикл FOR вот так:Creativ_Doc писал(а):В общем у меня не получается с выводом номера строки где больше цифр!!
Код: Выделить всё
for j:=1 to m do [b]begin[/b]
[i]бла-бла-бла[/i]
[b]end;[/b]

Решаю задачки на Паскале. Практически любой сложности. Да, дорого. Но договориться всегда можно. Аська 337351594 

-
- Сообщения: 6
- Зарегистрирован: 06 янв 2008, 17:58
Подскажи пожалуйста: как вот мне номера строк в матрице записать в другой одномерный массив. Большая просьба на примере каком-нибудь. 

- Turboworld
- Сообщения: 29
- Зарегистрирован: 27 дек 2007, 23:31
- Контактная информация:
обязательно в массив запихивать одномерный их? можно же по мере нахождения выплёвывать номера на экранCreativ_Doc писал(а):Подскажи пожалуйста: как вот мне номера строк в матрице записать в другой одномерный массив. Большая просьба на примере каком-нибудь.![]()

Решаю задачки на Паскале. Практически любой сложности. Да, дорого. Но договориться всегда можно. Аська 337351594 

Гм, та же песня, но на новый лад...
Тег code сделан для того, чтобы можно было выделять блоки текста (циклы, подпрограммы и т.д.) отступами. А так - тот же погонный текст, только в рамочке.
В каждой строке делаем проверку (пусть i - номер строки, j - номер элемента в строке)
cifr:=0;
ne_cifr:=0;
for j:=1 to N do
if (a[i,j]<='9') and (a[i,j]>='0') then inc(cifr) else inc(ne_cifr);
if cifr>ne_cifr then writeln ('В строке номер ',i,' цифр больше, чем не цифр');
Тег code сделан для того, чтобы можно было выделять блоки текста (циклы, подпрограммы и т.д.) отступами. А так - тот же погонный текст, только в рамочке.
В каждой строке делаем проверку (пусть i - номер строки, j - номер элемента в строке)
cifr:=0;
ne_cifr:=0;
for j:=1 to N do
if (a[i,j]<='9') and (a[i,j]>='0') then inc(cifr) else inc(ne_cifr);
if cifr>ne_cifr then writeln ('В строке номер ',i,' цифр больше, чем не цифр');
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
-
- Сообщения: 6
- Зарегистрирован: 06 янв 2008, 17:58
Спасибо большое!!! Я решил эту задачу...!!
Ты подсказал мне очень хороший момент!!! Оказывается все так просто было!!!!
Спасибо!!!

