Форум о FIFA 15, FIFA 14, PES 2014 и других футбольных симуляторах на fifasoccer.ru

Форум о FIFA 15, FIFA 14, PES 2014 и других футбольных симуляторах на fifasoccer.ru (http://fifasoccer.org/forum/index.php)
-   Программирование (http://fifasoccer.org/forum/forumdisplay.php?f=40)
-   -   Программы на Паскале (http://fifasoccer.org/forum/showthread.php?t=17890)

Kup9 06.12.2009 18:51

Программы на Паскале
 
Прошу помощи в Паскале, т.к. сам шарю плохо, и очень в нем путаюсь)

Программа на двумерный массив:
Определить номера строк двумерного массива, которые равны между собой.
Прогу написал, но вот с выводом одинаковых строк попа...
1 0 0 1 1
0 1 0 1 0
0 1 0 1 0
0 0 0 0 0
0 0 1 1 1
2=3
3=2

выводит два раза, не знаю как убрать, прошу помощи...


program massiv;
const n=5;
var a:array [1..n,1..n] of integer;
i,j,l,k,m:integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(2);
write(a[i,j]:4);
end;
writeln;
end;
for i:=1 to n-1 do
begin
for l:=2 to n do
begin
k:=0;
for j:=1 to n do
if a[i,j]=a[l,j] then
begin
k:=k+1;
if k=n then
if i<>l then
writeln(i,'=',l);
end;
end;

end;
writeln;
end.


И прога на строковый массив:
Для введенной строки определить длину содержащейся в ней максимальной серии символов, отличных от букв.
Тут я вобще не знаю что делать...

Прошу очень помощи...

shava13 06.12.2009 20:43

Цитата:

Сообщение от Kup9 (Сообщение 747518)
Для введенной строки определить длину содержащейся в ней максимальной серии символов, отличных от букв.

Program qwerty;
uses crt;
var
str:string;
i,cnt,max:integer;

begin
clrscr;
writeln('Vvedite straka'); readln(str);

for i:=1 to length(str)
do begin
if ( str[i] in ['a'..'z']) or (str[i] in ['A'..'Z']) then
begin
if cnt>max then max:=cnt;
cnt:=0;
end
else
inc(cnt);
if cnt>max then max:=cnt;
end;

writeln('max = ',max);

readkey;
end.

cec 06.12.2009 20:58

Цитата:

Сообщение от Kup9 (Сообщение 747518)
...
if (i<>l) and (i<l) then
writeln(i,'=',l);
end;
end;

end;
writeln;
end.

Вот как-то так

STELS 06.12.2009 21:05

Цитата:

if (i<>l) and (i<l) then
if i<l then
xD

cec 06.12.2009 21:15

Цитата:

Сообщение от STELS (Сообщение 747572)
if i<l then
xD

Так я сразу в прогу добавил на место условия при выводе

Kup9 06.12.2009 22:12

Цитата:

Сообщение от shava13 (Сообщение 747565)
Program qwerty;
uses crt;
var
str:string;
i,cnt,max:integer;

begin
clrscr;
writeln('Vvedite straka'); readln(str);

for i:=1 to length(str)
do begin
if ( str[i] in ['a'..'z']) or (str[i] in ['A'..'Z']) then
begin
if cnt>max then max:=cnt;
cnt:=0;
end
else
inc(cnt);
if cnt>max then max:=cnt;
end;

writeln('max = ',max);

readkey;
end.

Спс, подходит, только поубирал подключение модулей, вроде мы их еще не проходили) и вопросик что такое inc(..) я забыл =)


Цитата:

Сообщение от Футболлист (Сообщение 747569)
Вот как-то так

Спасибки, вот этой мелочи и не хватало.

shava13 07.12.2009 01:07

inc(x) тоже самое что и x = x+1

А модуль crt можешь убрать, но тогда ты лишишься прекрасных функций clrscr и readkey. Не беда вобщем то

Kup9 07.12.2009 09:57

ну впринцыпе так и понял, но все таки спс что разъяснил)
первый курс еще, мы эти функции еще не проходили, хотя я и понимаю зачем они нужны)

daNch1k 22.12.2009 14:39

Вообщем нужно решить 3 задачи на завтра, ну или хотя бы сколько сможете, спорная оценка :(

1) Игрок А объявляет 2х значное число от 01-99. Игрок Б меняет местами его цифры и полученное число прибавляет к сумме его цифр. Полученный результат он объявляет игроку А. Игрок А проделаывает с этим числом ту же процедуру, и так они продолжают поступать поочереди, объявляя число. От суммы чисел берется остаток от деления на 100, поэтому объявляются лишь 2х значные числа. Какие числа может объявлять игрок А на начальном шаге, чтобы игрок Б в некоторый момент объявил число 00?

2) Определить, является ли заданная целая квадртаная матрица n-го порядка симметричной (относительно главной диагонали).

3) Дана строка, содержащая текст на русском языке. Составить в алфавитном порядке список всех слов, встречающихся в этом тексте.

DennisBergkamp 22.12.2009 15:18

Паскаль помню плохо, так что могу только так помочь:
Цитата:

Сообщение от daNch1k (Сообщение 753649)
2) Определить, является ли заданная целая квадртаная матрица n-го порядка симметричной (относительно главной диагонали).

sum=n*n;
for i:=1 to n do
begin
for j:=1 to n do
begin

if ( mass[ i ][ j ] == mass[ j ][ i ] ) then
p:=p+1;

end
end

if ( p==sum) then
writeln("yes");
else
writeln("no");

p.s. Правильность не гарантирую!


Часовой пояс GMT +3, время: 01:55.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot