1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Ещё одна задача... но на двухмерный массив (матрицу), Наведите меня на логику и понимания задачи:)
var klon_p,i:integer; begin ClrScr; textcolor(2); writeln('исходный масив'); {------------------------------} for i:=1 to 3 do begin writeln(mass[i,1],' ', mass[i,2],' ', mass[i,3]);
end; {------------------------------} for i:=1 to 3 do begin klon_p:=mass[i,1]; mass[i,1]:=mass[i,2]; mass[i,2]:=mass[i,3]; mass[i,3]:=klon_p; end; {------------------------------} textcolor(4); writeln; writeln('результат обработки'); {------------------------------} for i:=1 to 3 do begin writeln(mass[i,1],' ', mass[i,2],' ', mass[i,3]);
А как такое можно сделать(удалить один столбец) с масивом????
Никак. Есть два варианта: 1) Статически определяешь такую запись:
const Max_Razm:=20; type record N :integer; {кол-во строк} M :integer; {кол-во столбцов} Matr :array[1..Max_Razm,1..Max_Razm] of Integer; {значения матрицы} end;
2) Создаешь динамический массив (динамическую матрицу), размер которой можно менять в ходе выполнения программы. См. Динамические массивы
--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
просто с такой скоростю как у меня через GPRS тока и бегать по факам и тратить дорогой и глючный трафик плохого опсоса....
!
А дороговизна и глючность - это НАШИ проблемы? А может, все-таки, ТВОИ? Ты пришел на форум, будь добр следовать его Правилам ... Не можешь - google.com и ищи форум, где правила НЕ выполняются... volvo
--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
Никак. Есть два варианта: 1) Статически определяешь такую запись:
const Max_Razm:=20; type record N :integer; {кол-во строк} M :integer; {кол-во столбцов} Matr :array[1..Max_Razm,1..Max_Razm] of Integer; {значения матрицы} end;
такс....
ну написал эту запись, а толку?
что дальше?
--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
Твоя матрица будет статическая, т.е. ее размеры в ходе выполнения изменить будет нельзя, НО! Определяя запись record, ты как бы к ней привязываешь переменные говорящие о ее заполненности по строкам и столбцам. ЗЫ: А вообще-то это лучше делать объектом и привязывать методы (процедуры и функции) работающие с этой матрицей. Ну например сортировки, добавления и удаления столбцов и строк, и т.д. т.п.
Сообщение отредактировано: hiv -
--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
Известы данный о 20 сотруниках фирмы(фамилия, зарплата и пол). определить: а)фамилию мужчины,имебщего самую большую зарплату(считать что такой есть и он едниственый) б)фамилию мужчины и женщины, имеющих самую маленькую зарплату(счиать что такие есть и они единственые в свой групе сотрудников)
Исходный код:
program z1194; uses crt; {-----------------------------------------------------} const kol_sotrudnik = 4; { количество сотрудников} {-----------------------------------------------------} type danin_sotrudnik = record fam : string; zarpl : integer; pol : string; end; {----------------------------------------------------------------} var mass_sotrudnik: Array[1..kol_sotrudnik] of danin_sotrudnik; i,max_zarpl,min_zarpl,max_i,min_i,max_vse,max_ivse,max_zarplvse:integer; {----------------------------------------------------------------} begin ClrScr; {---ввод и вывод максимального значения у мужиков---} max_zarpl:=0;
for i:=1 to kol_sotrudnik do begin write('Фамилия N ',i,' '); readln(mass_sotrudnik[i].fam);
write('Зарплата N ',i,' '); readln(mass_sotrudnik[i].zarpl);
write('Пол m/j N ',i,' '); readln(mass_sotrudnik[i].pol);
writeln('--------------------');
if (max_zarpl<mass_sotrudnik[i].zarpl) and (mass_sotrudnik[i].pol='m') then begin max_zarpl:=mass_sotrudnik[i].zarpl ; max_i:=i; end;
end; writeln('самая большая зарплата мужцины в ',mass_sotrudnik[max_i].fam); {---***********-}
max_zarpl:=0;
for i:=1 to kol_sotrudnik do begin if (max_zarplvse<mass_sotrudnik[i].zarpl) and (mass_sotrudnik[i].pol='m') and (mass_sotrudnik[i].pol='j') then begin max_zarplvse:=mass_sotrudnik[i].zarpl ; max_ivse:=i; end;
end;
{--*************---}
min_zarpl:=mass_sotrudnik[max_ivse].zarpl; for i:=1 to kol_sotrudnik do begin
if (min_zarpl>mass_sotrudnik[i].zarpl) and (mass_sotrudnik[i].pol='m') then begin min_zarpl:=mass_sotrudnik[i].zarpl ; min_i:=i; end;
end; writeln('самая минимальная зарплата у мужчин в ',mass_sotrudnik[min_i].fam);
{---------------------------------------} min_zarpl:=mass_sotrudnik[max_ivse].zarpl; for i:=1 to kol_sotrudnik do begin
if (min_zarpl>mass_sotrudnik[i].zarpl) and (mass_sotrudnik[i].pol='j') then begin min_zarpl:=mass_sotrudnik[i].zarpl ; min_i:=i; end;
end; writeln('самая минимальная зарплата у женщин в ',mass_sotrudnik[min_i].fam);
writeln; write('End'); readln; end.
Проверте пожалуйста всё ли правильно я написал??????
// const kol_sotrudnik = 4 - узял не 20 как сказано в задаче а 4 шоб меньше вводить
офф... спкокойной ночи
--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
В таблице хранятся следуйщие данные об учениказ: фамилия,имя,отчество,рост,маса. Вычеслить средний рост учеников, рост самого высокого и самого низкого ученика. Сколько учеников могут заниматся в баскетбольной секции, если рост баскетболиста должен быть больше 170 см
Я реши тякс:
Program z1248;
uses crt;
const kol_uchniv = 10; {количество учеников} {------------тип------------} type dani_uchniv = record fam : string; imya : string; otchestvo : string; rost : integer; masa : integer; end; {---------------------------}
var {------------------массив-----------------------} mass_u:Array[1..kol_uchniv] of dani_uchniv; {-----------------------------------------------} i:integer; s_rost:real; ser_rost:real; max_rost,max_i:integer; min_rost:integer; kol_uchniv2:integer; Begin ClrScr; {------------------Таблица учеников--------------} {1} mass_u[1].fam:='Белый ';mass_u[1].imya:=' Дима'; mass_u[1].otchestvo:=' Юрьевич '; mass_u[1].rost:=170; mass_u[1].masa:=60; {end}
for i:=1 to kol_uchniv do begin writeln(' ',i,' ',mass_U[i].fam,' ',mass_U[i].imya,' ',mass_U[i].otchestvo,' ', mass_u[i].rost, ' ',mass_u[i].masa); end; {------------------Цыкл для середнього роста--------------------------} s_rost:=0;
for i:=1 to kol_uchniv do begin {----ниже формула сумы ростов----} s_rost:=s_rost + mass_u[i].rost; end; {-----------Средний рост------------} ser_rost:=s_rost/kol_uchniv; {-----------------------------------}
{---------------цыкл для вычисления максимального роста учеников---------------------} max_rost:=0; max_i:=0; for i:=1 to kol_uchniv do begin if (max_rost<mass_u[i].rost) then
{--------------------цыкл для вычисления минимального роста учеников----------} min_rost:=mass_u[max_i].rost;
for i:=1 to kol_uchniv do begin if min_rost>mass_u[i].rost then min_rost:=mass_u[i].rost; {min_i:=i;} end; {--------------------------------конец цыкла min-------------------------------}
writeln(' Cередний Рост Учеников = ', ser_rost:5:1 ,' см'); writeln; writeln(' Рост самого высокого Ученика = ',mass_u[max_i].rost,' см'); writeln; writeln(' Рост самого низкого Ученика = ',min_rost); writeln; writeln(' Могут Заниматься в Баскетбольной Секции Только ',kol_uchniv2,' чел ',' из ',kol_uchniv,' чел' ); textcolor(2); writeln('--------------------------------------------------------------'); textcolor(9); writeln('Made in Ukrane! Produce By STORM!'); textcolor(2); writeln('Для завершения просмотра нажмите любую клавишу'); readkey; end.
И теперь думаю немного с записями разрулился
теперь мне не составит труда решить задачу 1066б
Спасибо всем кто помогал! с Наступающим 2007 новым годом Всех!!!!!
офф
--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)