Помощь - Поиск - Пользователи - Календарь
Полная версия: Программки на массивы...циклические процессы и т.д
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Lapochka
Приветик всем 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
 
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
nikita182 бальшущее тебе спасибо wub.gif
Насчёт других программок, люди, может у вас после учёбы остались на подобии этих программ...выложите плиз....а я как нибудь может подшаманю их... rolleyes.gif
Tan
Поищи по форуму, тут очень много "подобий" твоим заданиям.
Lapochka
Цитата(Tan @ 20.05.2007 15:14) *

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

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

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

посмотри вот здесь, например, решение подобного:
Общие вопросы по математике.
то есть сначала записываешь в общем виде (1/sqrt(i*(i+2))), а потом по i составляешь цикл суммирования.
Lapochka
мисс_граффити смешно))Насчёт начать программку я не то имела ввиду)
Общие вопросы мало чем помагли....я в математике мало что понимаю....поэтому эта лаба самая сложная для меня unsure.gif
Lapochka
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
Не стисняйтесь пишите...) Задачки 1 и 4 мне уже решили, так что не надо rolleyes.gif
Lapochka
Ну плиииз помогите хотя бы с 5 задачкой.......завтра уже сдавать mega_chok.gif
nikita182
Цитата(Lapochka @ 20.05.2007 2:53) *


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



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

1.несколько телефонов на отдел
2.один телефон на несколько отделов
3.или же равное кол-во.
Lapochka
nikita182 в нашем случаеmega_chok.gif уже всё равно какие варианты, главное программка что бы была )
nikita182
 

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.




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

зы текстовый файл кинь в папку с прогой..
Lapochka
nikita182 Пасибочки) Ты меня очень выручил wub.gif
nikita182
пожалуйста, обращайся, если что....
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.