Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 15.12.2011, 19:58   #1 (permalink)
*Катюшка*
Новичок
 
Регистрация: 15.12.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Delphi. Помогите, пожалуйста, решить две задачки

Здравствуйте! Помогите пожалуйста решить 2 задачке в Delphi...очень нужно, без них не поставят зачет((Заранее спасибо!

1)Дан файл f, компоненты которого являются действительными числами. Найти:
Сумму компонент файла f. Записать эту сумму
в конец файла. Отсортировать файл по возрастанию значений компонент.
2)Даны два текстовых файла f и g. Определить, совпадают ли компоненты файла f с компонентами файла g. Если нет, то получить номер первой строки и позицию первого символа в этой строке, в которых файлы различаются между собой. В случае, когда один из файлов имеет n компонент (n>0) и повторяет начало другого (более длинного файла), ответом должно быть число n+1.
*Катюшка* вне форума   Ответить с цитированием

Старый 15.12.2011, 19:58
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Ранее наши участники создавали похожие обсуждения

Помогите, пожалуйста, решить задачки
Помогите решить задачки
Помогите решить задачки
Помогите, пожалуйста, решить задачки в Паскале по одномерным массивам
Помогите, пожалуйста, решить задачки в Паскале по одномерным массивам
Помогите, пожалуйста, решить задачки в Паскале

Старый 16.12.2011, 20:48   #2 (permalink)
*Катюшка*
Новичок
 
Регистрация: 15.12.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Ну помогите пожалуйста. Я совсем не понимаю программированиеесли бы понимала-сюда бы не обратилась...
Эти программы пишутся в стиле паскаль!
*Катюшка* вне форума   Ответить с цитированием
Старый 16.12.2011, 21:35   #3 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Цитата:
Сообщение от *Катюшка* Посмотреть сообщение
в стиле паскаль
То есть вам нужны консольные программы?

По первой задаче.
Создайте файл, заполните его числами и присоедините к сообщению. Дело в том, что структура файла может быть разной, в зависимости от требований проекта, соответственно, и команды, которые используются для работы с файлами, будут отличаться.
Общее описание решения:
Задача делится на две подзадачи - подсчет суммы чисел и сортировка файла, поэтому программа не очень простая. Так как о количестве чисел в файле ничего не сказано, то использовать при сортировке статистический массив нельзя, а с динамическими массивами работать вас, как понимаю, совсем не учили. Предлагаю реализовать сортировку файла с использованием вспомогательного файла. Алгоритмов сортировки в сети достаточно много и у нас на форуме они также неоднократно рассматривались.

По второму заданию:
Назовем строкой последовательность символов, оканчивающуюся символов с кодом 13, который обрабатывается как признак конца строки.
Для считывания файла до конца используйте цикл while... с условием NOT EOF(F). Для считывания построчно используйте цикл while..., условие для него - пока не считан признак конца строки - NOT EOL(F). Считывайте посимвольно в переменные и сравнивайте. Не забудьте определить счетчики для номеров строки и позиции символа в строке.

Проще всего написать, что, мол, нифига не смыслю в программировании и вывалить все на форум на удачу в надежде на доброхотов. Попробуйте самостоятельно хоть что-то сделать, тем более, что методички у вас на руках, а там описывается примерный способ решения подобных задач. Если не получится - выкладывайте свои наработки, будем вместе править. А учиться вместо вас никто не собирается.
AlexZir вне форума   Ответить с цитированием
Старый 17.12.2011, 00:19   #4 (permalink)
*Катюшка*
Новичок
 
Регистрация: 15.12.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

1 задача:
program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;

file of real;
a,b,x,s:real;
n,i,j:integer;
begin
clrscr;
randomize;
assign(f,'file');
rewrite(f);
write('Сколько чисел записать в файл n=');
readln(n);
for i:=1 to n do
begin
a:=20*random-10;
write(f,a);
end;
writeln('Содержание исходного файла:');
reset(f);
s:=0;
while not eof(f) do
begin
read(f,a);
write(a:0:2,' ');
s:=s+a;
end;
writeln;
writeln('Сумма компонент=',s:0:2);
seek(f,filesize(f));
write(f,s);
writeln('Сумма дописана в конец файла:');
seek(f,0);
while not eof(f) do
begin
read(f,a);
write(a:0:2,' ');
end;
writeln;
seek(f,0);
for i:=0 to filesize(f)-2 do
for j:=i+1 to filesize(f)-1 do
begin
seek(f,i);
read(f,a);
seek(f,j);
read(f,b);
if a>b then
begin
x:=a;
a:=b;
b:=x;
seek(f,i);
write(f,a);
seek(f,j);
write(f,x);
end;
end;
writeln('Содержание отсортированного файла:');
seek(f,0);
while not eof(f) do
begin
read(f,a);
write(a:0:2,' ');
end;
close(f);
readln
end.

Правильно?
*Катюшка* вне форума   Ответить с цитированием
Старый 17.12.2011, 18:24   #5 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Когда записываете числа в файл, лучше использовать не write, а writeln, в этом случае каждое число будет записано с новой строки и вам не будет нужды их разделять. В вашем случае вы записываете в файл числа сплошной строкой, без разделителей, потом при попытке их прочитать считывается число, превышающее пределы, определенные форматом переменной и может вылететь ошибка.
AlexZir вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 13.05.2012, 14:30   #6 (permalink)
димка67
Новичок
 
Регистрация: 10.11.2011
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

помогите решить задачу на листбокс
1. В таблице А, состоящей из 8 элементов подсчитать количество положительных и отрицательных элементов.
2. Даны две таблицы А(8) и В(8). Сформировать таблицу С, содержащую те положительные элементы из А, которые есть в таблице В. Результат вывести.
димка67 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 23:14.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.