Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2008, 16:04   #1
Skippi
 
Регистрация: 10.09.2008
Сообщений: 5
По умолчанию Задача на Pascal

Сижу на экзамене =) И очень требуется решение задачи, как можно быстрее. если кто-то может помочь, то пожалуйста - помогите.

Задача: "Пользователь вводит целые числа N и M. Записать в файл произведение N и M целых случайных чисел из диапазона от -6 до +321. Считать все числа из файла и записать их в динамический двумерный массив размером NxM и опред. в нем среднеарифметическое значение элементов в строках, из которых сформировать массив размерностью N и вывести его на экран.


Помогите, пожалуйста, а то выгонят нафиг =(
Skippi вне форума Ответить с цитированием
Старый 12.09.2008, 12:47   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот посмотри, то или не то. Я еще когда ты на экзамене был, написал, только форум не работал до 22-00 Москвы.
Код:
uses crt;
type Tdin=array[0..0,0..0] of longint;{открытый динамический массив}

var k,n,m,i,j,a,b:integer;
    c:longint;
    ms:^Tdin;
    ms1:array[1..50] of real;
    f:text;
    sr:real;

begin
clrscr;
randomize;
write('n=');readln(n);
write('m=');readln(m);
assign(f,'mass.txt');{создаем файл, открываем для записи}
rewrite(f);
k:=0;
repeat
a:=random(328)-6; {вводим числа}
b:=random(328)-6;
write(f,a*b,' '); {умножаем и в файл}
k:=k+1;   {считаем}
until k=m*n; {если все, заканчиваем}
close(f); {закрываем файл}
reset(f); {открываем для чтения}
New(ms); {выделяем память под массив}
writeln('Matrica:');
for i:=1 to n do
   begin
     sr:=0;
     for j:=1 to m do
        begin
         read(f,ms^[i,j]);{читаем из файла}
         write(ms^[i,j]:7);{выводим на экран}
         sr:=sr+ms^[i,j];{считаем сумму в строках}
        end;
     ms1[i]:=sr/m;{находим среднее и записываем в массив}
     writeln;
   end;
writeln('Massiv:');
for i:=1 to n do
write(ms1[i]:10:2);
close(f);
dispose(ms);{освобождаем память}
readln
end.
puporev вне форума Ответить с цитированием
Старый 12.09.2008, 15:20   #3
Skippi
 
Регистрация: 10.09.2008
Сообщений: 5
По умолчанию

Огромное спасибо за предыдущую задачу,но я опять на экзамене дали еще одну задачу,кто может,помогите,пожалуйста

Записать в файл первые семь целых чисел,сумма цифр которых равна 21. Прочитать числа из файла и вывести их на экран.
Skippi вне форума Ответить с цитированием
Старый 12.09.2008, 15:45   #4
Skippi
 
Регистрация: 10.09.2008
Сообщений: 5
По умолчанию

Помогите, пожалуйста
Skippi вне форума Ответить с цитированием
Старый 12.09.2008, 16:14   #5
FearX
Новичок
Джуниор
 
Регистрация: 12.09.2008
Сообщений: 2
По умолчанию

Основа тоже самая, только вместо генерации массива и записи его в файл тебе нужно просто посчитать сумму первых 7 чисел (от 0 до 6 включительно).

0+1+2+3+4+5+6=21;

Писал не проверяя, возможны ошибки, причем не одна.
Цитата:
program fear;
uses crt;

var k:integer;
i:real;
f:text;

begin
clrscr;
assign(f,'fear.txt');
rewrite(f);
k:=0;

for i=1 to 7 do
k:=k+1;


read(f,k);
writeln('Сумма первых семи чисел (от 0 до 6 включительно) равна', k);
write(f,k,' ');
close(f);
reset(f);
close(f);

readln;
end.

Последний раз редактировалось FearX; 12.09.2008 в 16:18.
FearX вне форума Ответить с цитированием
Старый 12.09.2008, 16:18   #6
Skippi
 
Регистрация: 10.09.2008
Сообщений: 5
По умолчанию

Нужно найти сумму ЦИФР первых целых чисел.например 777=7+7+7=21
Skippi вне форума Ответить с цитированием
Старый 12.09.2008, 16:25   #7
FearX
Новичок
Джуниор
 
Регистрация: 12.09.2008
Сообщений: 2
По умолчанию

delete post
FearX вне форума Ответить с цитированием
Старый 12.09.2008, 16:25   #8
Skippi
 
Регистрация: 10.09.2008
Сообщений: 5
По умолчанию

Блин,люди,помогите,пожалуйста,а то ведь реально выгонят
Skippi вне форума Ответить с цитированием
Старый 12.09.2008, 17:01   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Код:
uses crt;
var n,k:word;
    f:text;
function Summ(n:word):byte;//функция для подсчета суммы цифр
var sm:byte;
    u:word;
begin
sm:=0;
while n>0 do
   begin
    u:=n mod 10;//берем последнюю цифру
    sm:=sm+u; //прибавляем
    n:=n div 10; //берем число без последней цифры и все повторяем, пока не ноль
   end;
Summ:=sm;
end;
begin
clrscr;
assign(f,'chisla.txt');//создаем файл и открываем для записи
rewrite(f);
k:=0;n:=0; //первое число=0, кол-во чисел=0
repeat
n:=n+1;//берем очередное число
if Summ(n)=21 then// если сумма 21, считаем и записываем в файл
   begin
     k:=k+1;
     writeln(f,n);
   end;
until k=7;//если чисел 7, заканчиваем
close(f); //закрываем файл
reset(f); //открываем для чтения
while not eof(f)do
  begin
   readln(f,n);//читаем числа
   writeln(n); //выводим на экран
  end;
readln;
close(f);
end.
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на Pascal... Sota Помощь студентам 3 04.05.2008 14:52
задача на записи Pascal kitty Помощь студентам 9 18.04.2008 18:14
Задача на Turbo Pascal W_P Помощь студентам 1 14.02.2008 18:24
Задача [Pascal] [Smarik] Помощь студентам 4 04.02.2008 15:50