Консультация № 137927
26.05.2008, 23:27
0.00 руб.
0 2 2
Помогите решить задачи по Паскалю!

--------------------------------------------------------------------------------

1.Дана целочисленная прямоугольная матрица. Определить количество столбцов,содержащих хотя бы один нулевой элемент (оформить в виде фукции).
2. Дана целочисленная прямоугольная матрица. Определить номер столбца,в котором находиться самая длинная серия одинаковых элементов (оформить в виде процедуры).
3.Описать запись с именем Route, содержащую следующие поля:
-название начального пункта маршрута,
название конечного пункта маршрута,
время в пути для каждого маршрута.
Написать программу,выполняющую слудующие действия:
Вывод информации о маршрутах,начинающихся или кончающихся в пункте,название которого введено с клавиатуры,а если таких маршрутов нет-вывод на экран соответствующего сообщения;
вывод информации о маршрутах,время пути которых не превышает 30 минут

Обсуждение

Неизвестный
27.05.2008, 00:14
общий
это ответ
Здравствуйте, VanHelsing!
Помогу Вам с третьей задачей. Код в приложении.

Приложение:
const n = 4; {количество маршрутов}Type Route = record {наш тип содержит} start, finish: string[50]; {имя начального конечного пунктов} time: integer; {время} end;var ms: array [1..n] of route; {массив нашего типа Route} i: integer; {вспомогательная переменная-счётчик} s: string[50]; {строка для поиска} b: boolean; {переменная логического типа - с её помощью будем узнавать найдено ли что-либо по запросу}begin b:=true; {инициализация} for i:=1 to n do {заполняем данные о маршрутах} begin Writeln(‘Type data for #‘,i); Readln(ms[i].start); {начальный пункт} Readln(ms[i].finish); {конечный} Readln(ms[i].time); {время} end; writeln; writeln(‘Type name‘); readln(s); {считываем строку для поиска по месту отправки/прибытия} for i:=1 to n do {поиск} if (ms[i].start = s) or (ms[i].finish = s) then {если значение совпадает с введёным} begin writeln(ms[i].start, ‘ -> ‘, ms[i].finish); {то выведем на экран пункт отправки и прибытия} b:=false; {логической перенная сигнализирует о наличии результата поиска} end; if b then writeln(‘Sorry. Nothing found..‘); {если ничего не было найдено, то вывести на экран надпись} b:=true; {подготовка к поиску по времени} writeln; write(‘Less then 30 minutes to ‘); for i:=1 to n do if ms[i].time < 30 then {алгоритм тот же: если время до какого-либо пункта меньше 30 минут,то выведем на экран название сего пункта} begin write(ms[i].finish, ‘ ‘); {вывод на экран названия пункта прибытия} b:=false; {показываем наличие результата поиска} end; if b then write(‘<nothing>‘); {если поиск результатов не дал, то выводим надпись} readln;end.
давно
Профессор
401888
1232
27.05.2008, 09:10
общий
это ответ
Здравствуйте, VanHelsing!
Решение первой задачи в приложении.

Приложение:
Задача 1.uses crt;type Tmatr=array[1..20,1..20]of integer;{определяем тип матрицы для передачи его в функцию}var a:Tmatr; n,m,i,j:integer;function NulStb(p:Tmatr):integer;var k,nl:integer;begink:=0;for j:=1 to m do begin nl:=0; for i:=1 to n do if p[i,j]=0 then nl:=nl+1;{считаем ноли в солбцах} if nl>0 then k:=k+1;{если ноли есть, считаем столбец} end;NulStb:=k;{присваиваем значение функции}end;begin {начало программы}clrscr;randomize;write(‘Vvedite kolichestvo strok: ‘);readln(n);write(‘Vvedite kolichestvo stolbcov: ‘);readln(m);writeln(‘Matrica:‘);for i:=1 to n do {создаем и выводим на экран матрицу} begin for j:=1 to m do begin a[i,j]:=random(10)-3; write(a[i,j]:4); end; writeln; end;writeln;writeln(‘Kolichestvo stolbcov s nylevymi elementami = ‘,NulStb(a));{вызываем функцию и она выдает результат}readlnend.
Форма ответа