Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Программки на массивы...циклические процессы и т.д

Автор: Lapochka 20.05.2007 5:53

Приветик всем smile.gif Вот почти не разбираюсь я в паскале...а лабы хоть убейся, но сдать надо rolleyes.gif
Вопщем сразу перейду к делу, надо переделать программку, так, что бы она выполнялась с циклом while.Заранее респект wub.gif

program Lapochka; 
Uses Crt;
const
gl=['a','e','i','o','u','y'];
so=['b','c','d','f','g','h','j','k','l',
'm','n','p','r','s','t','w','q','t','v','z'];
var
a: string;
g,s,i:integer;
begin
clrscr;
TextColor(Yellow);
write('Vvedite posledovatelnost '); readln(a);
g:=0; s:=0;
for i:= 1 to length(a) do
if a[i] in gl then inc(g) else if a[i] in so then inc(s);
if g> s then
writeln('TRUE')
else if g< s then writeln('FALSE');
readln;
end.


А вот ещё...если у кого то ум позволяет щёлкать, как орешки эти программки rolleyes.gif

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

2)Нуфно сделать с помощью сортировки массива: Переставить строки исходной матрицы так, чтобы убывало количество нулей в строках.

3)Нуфно спрограммировать с использованием файлов : Дана вещественная матрица размером 7´4. Найти максимальный элемент матрицы. Переставляя ее строки и столбцы, добиться того, чтобы мах элемент оказался в левом верхнем углу матрицы.

4)Спрограммировать с помощью циклич процессов (for) Ребят это срочно нужно....напишите плиз rolleyes.gif
S = 1/sqrt(1×) + 1/sqrt(3×5) + ... + 1/sqrt(199×201).

5)Не сочтите за наглость...но плиз ещё одну...я так заколебалась их делать wub.gif
Сделать с использованием нескольких процедур: . Список внутренних телефонов организации с разбивкой по отделам. Количество отделов и телефонов внутри отдела задать самостоятельно. Составить модуль поиска всех телефонов с заданными двумя первыми цифрами.

Пасиба ребят d3.gif

Автор: nikita182 20.05.2007 17:15

 
Uses Crt;

const
gl=['a','e','i','o','u','y'];
so=['b','c','d','f','g','h','j','k','l',
'm','n','p','r','s','t','w','q','t','v','z'];

var
a: string;
g,s,i:integer;

begin
clrscr;
TextColor(Yellow);
write('Vvedite posledovatelnost '); readln(a);
g:=0; s:=0; i := 1;
while i < length(a) do begin
if a[i] in gl then inc(g) else if a[i] in so then inc(s);
inc(i);
end;
if g> s then
writeln('TRUE')
else if g< s then writeln('FALSE');
readln;
end.




так?

Автор: Lapochka 20.05.2007 17:59

nikita182 бальшущее тебе спасибо wub.gif
Насчёт других программок, люди, может у вас после учёбы остались на подобии этих программ...выложите плиз....а я как нибудь может подшаманю их... rolleyes.gif

Автор: Tan 20.05.2007 18:14

Поищи по форуму, тут очень много "подобий" твоим заданиям.

Автор: Lapochka 20.05.2007 18:37

Цитата(Tan @ 20.05.2007 15:14) *

Поищи по форуму, тут очень много "подобий" твоим заданиям.

Тогда уж с нуля лучше писать....чем такие "подобии"переделывать %)
Я вот даже не представляю как начать программку S = 1/sqrt(1×) + 1/sqrt(3×5) + ... + 1/sqrt(199×201)

Автор: мисс_граффити 20.05.2007 18:47

Цитата
Я вот даже не представляю как начать программку

program Lapochka;
, очевидно...
можно попробовать уговорить компилятор на
programmka Lapochka;

посмотри вот здесь, например, решение подобного:
http://forum.pascal.net.ru/index.php?s=&showtopic=4535&view=findpost&p=44175
то есть сначала записываешь в общем виде (1/sqrt(i*(i+2))), а потом по i составляешь цикл суммирования.

Автор: Lapochka 20.05.2007 19:10

мисс_граффити смешно))Насчёт начать программку я не то имела ввиду)
Общие вопросы мало чем помагли....я в математике мало что понимаю....поэтому эта лаба самая сложная для меня unsure.gif

Автор: Lapochka 20.05.2007 21:13

rolleyes.gif И так)Нашла две программки....по идее, если обьединить, то должно получиться, что то вроди этого-Переставить строки исходной матрицы так, чтобы убывало количество нулей в строках.
Помогите плиз их соединить wub.gif

program EnterMatr;
const
MAXCOUNT = 50; {максимальная размерность матрицы}
type
{квадратная матрица}
Matrix = array [1..MAXCOUNT, 1..MAXCOUNT] of real;
var
matr: Matrix;
n: integer; {реальная размерность матрицы}

(*----------------------------------------
Ввод размерности матрицы
----------------------------------------*)
procedure EnterMatrixSize(var x: integer);
begin
repeat
write('vvedite kol.stolbcov (1..',MAXCOUNT,') ');
readln(x);
if (x<1) then
writeln('Ошибка! Размерность матрицы не может быть '+
'меньшей единицы. Повторите ввод.');
if (x>MAXCOUNT) then
writeln('Ошибка! Размерность матрицы не должна быть '+
'большей ',MAXCOUNT,'. Повторите ввод.');
until (x>0)and(x<=MAXCOUNT);
end;

(*----------------------------------------
Поэлементный ввод квадратной матрицы с клавиатуры
----------------------------------------*)
procedure EnterMatrix (x: integer; var M: Matrix);
var
i,j: integer;
begin
writeln('Vvedite element. matrici:');
for i:=1 to x do
for j:=1 to x do begin
write('M[',i,',',j,'] = ');
readln(M[i,j]);
end;
end;

(*----------------------------------------
Поэлементный вывод матрицы на экран в
"естественном" виде (т.е. по строкам)
----------------------------------------*)
procedure PrintMatrix(x: integer; M: Matrix);
var
i,j: integer;
begin
for i:=1 to x do begin
for j:=1 to x do
write(M[i,j]:6:2);
writeln;
end;
end;

{основная программа}
begin

EnterMatrixSize(n);
EnterMatrix(n, matr);
writeln('Matrica:');
PrintMatrix(n, matr);
writeln('Enter-exit');
readln;
end.

Вот эта должна печатать матрицу, а та, что ниже удаляет нолики)
program z14;
uses crt;
var m,i,k:longint; a:array[1..100]of longint;
begin
clrscr;
write('введите кол-во элм таблицы: ');readln(k);
for i:=1 to k do
begin
write('a[',i,']=');readln(a[i]);
end;
m:=0;
for i:=1 to k do
if a[i]=0 then inc(m)
else a[i-m]:=a[i];k:=k-m;
for i:=1 to k do write(a[i],' ');readln;
end.


Автор: Lapochka 21.05.2007 4:22

Не стисняйтесь пишите...) Задачки 1 и 4 мне уже решили, так что не надо rolleyes.gif

Автор: Lapochka 21.05.2007 22:51

Ну плиииз помогите хотя бы с 5 задачкой.......завтра уже сдавать mega_chok.gif

Автор: nikita182 21.05.2007 23:11

Цитата(Lapochka @ 20.05.2007 2:53) *


5)Не сочтите за наглость...но плиз ещё одну...я так заколебалась их делать wub.gif
Сделать с использованием нескольких процедур: . Список внутренних телефонов организации с разбивкой по отделам. Количество отделов и телефонов внутри отдела задать самостоятельно. Составить модуль поиска всех телефонов с заданными двумя первыми цифрами.



хм..какие есть варианты?:

1.несколько телефонов на отдел
2.один телефон на несколько отделов
3.или же равное кол-во.

Автор: Lapochka 21.05.2007 23:34

nikita182 в нашем случаеmega_chok.gif уже всё равно какие варианты, главное программка что бы была )

Автор: nikita182 22.05.2007 0:12

 

uses crt;

const
q = 500;
path = 'qw.txt';

type
dzap = ^zapis;
zapis = record
otdel : string[10];
tel : string[10];
next : dzap;
end;

var
zap, {tekushya zapis}
nachzap : dzap; {1 zapis}
t : text;

procedure vvod;
var
i : integer;
przap : dzap;
begin
clrscr;

assign (t, path);
reset (t);


i := 0;
nachzap := nil;
while not eof(t) do
begin
przap := zap;
new(zap);
with zap^ do
begin
next := nil;
if nachzap = nil then
nachzap := zap
else
przap^.next := zap;
readln(t, otdel, tel);
writeln(otdel, tel);
end;
end;
close(t);
end;


procedure poisk;
var
i : integer;
s : string;
begin
writeln ('vvodi 2 pevie cifri nomera');
readln (s);
zap := nachzap;
while zap <> nil do
begin
if (zap^.tel[1] = s[1]) and (zap^.tel[2] = s[2]) then
writeln (zap^.otdel, zap^.tel);
zap := zap^.next;
end;
end;

begin
clrscr;
vvod;
poisk;

readkey;
end.




вот накатал тут...

зы текстовый файл кинь в папку с прогой..


Прикрепленные файлы
Прикрепленный файл  qw.txt ( 64 байт ) Кол-во скачиваний: 267

Автор: Lapochka 22.05.2007 0:21

nikita182 Пасибочки) Ты меня очень выручил wub.gif

Автор: nikita182 22.05.2007 0:27

пожалуйста, обращайся, если что....