Форум программистов, компьютерный форум, киберфорум
Наши страницы

Turbo Pascal

Войти
Регистрация
Восстановить пароль
 
ArtemPerm
2 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 29
#1

Перевести строку, содержащую путь к файлу в стандарте ANSI С, в строку в стандарте фирмы Borland - Turbo Pascal

28.10.2013, 18:19. Просмотров 659. Ответов 7
Метки нет (Все метки)

ЗАДАНИЕ: Согласно стандарту ANSI С, при задании пути к файлу в программе на языке С, каталоги разделяются символом "/", а в стандарте фирмы Borland для разделения каталогов используется последовательность символов "\". Написать программу, которая переводит строку, содержащую путь к файлу в стандарте ANSI С, в строку, содержащую путь к файлу в стандарте фирмы Borland.
Пример
Путь в ANSI C > C:/MYDOCS/TEX/DOC1.TEX
Путь в Borland C > C:\\MYDOCS\\TEX\\DOC1.TEX
А ЭТО ПРИМЕРНО КАК ДЕЛАТЬ ЭТО ПРИМЕР:
Пример решения задачи. Определить количество русских гласных букв в строке.
Pascal
1
2
3
4
5
6
7
8
9
10
Program S1;
Var a,c:string; i,n:integer;
Begin
    A:=’АЕИОУЮЫЯЭаеиоуюыэ’;
    Write(‘Введите строку’);
    Readln(a);
N:=0;
For i:=1 to length(c) do if Pos(c[i],a)>0 then n:=n+1;
Writeln(n)
End.
Если не сложно помогите написать, главное чтобы не палевно было) ну что не спалили что типо это не я делал))
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2013, 18:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевести строку, содержащую путь к файлу в стандарте ANSI С, в строку в стандарте фирмы Borland (Turbo Pascal):

паскаль в стандарте - Pascal
"стандарте паскаль" -так называют просто паскаль без каких диалектов ,да ?

Поменять строку, содержащую минимальный элемент на строку, содержащую максимальный элемент - Turbo Pascal
чесно говоря не знаю как играться с min и max в массивах. Помогите пожалуйста з задачкой: есть массив а(6,8), нужно поменять строку что...

Введенную с клавиатуры строку A записать в обратном порядке в строку B. Строку B вывести на экран. - Turbo Pascal
Введенную с клавиатуры строку A записать в обратном порядке в строку B. Строку B вывести на экран. Не нужно постить куда попало!

Двунаправленный линейный список строк. Вставить строку, удалить строку и заменить строку - Turbo Pascal
3 двунаправленный линейный список строк.требуется вставить строку после строки с номером и удалить строку с номером и заменить строку с...

Введенную с клавиатуры строку A записать в обратном порядке в строку B. Строку B вывести на экран - Turbo Pascal
Помогите решить от и до))

Сформулировать строку, содержащую фамилию и инициалы - Pascal
Ребят помогите! В строке содержится фамилия, имя и отчество. Сформулировать строку, содержащую фамилию и инициалы. +++++ ...

7
ArtemPerm
2 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 29
28.10.2013, 18:27  [ТС] #2
А ЧТОБЫ БЫЛО БОЛЕЕ ПОНЯТНО Я ЗАКРЕПИЛ ФАЙЛ СЮДА, МОЖЕТЕ СКАЧАТЬ ТАМ МЕТОДИЧКА и ЗАДАНИЕ
Буду очень благодарен вам =)
0
Вложения
Тип файла: docx ононо.docx (20.4 Кб, 1 просмотров)
Mawrat
12794 / 5701 / 672
Регистрация: 19.09.2009
Сообщений: 8,807
28.10.2013, 19:22 #3
Цитата Сообщение от ArtemPerm Посмотреть сообщение
Согласно стандарту ANSI С, при задании пути к файлу в программе на языке С, каталоги разделяются символом "/", а в стандарте фирмы Borland для разделения каталогов используется последовательность символов "\\". Написать программу, которая переводит строку, содержащую путь к файлу в стандарте ANSI С, в строку, содержащую путь к файлу в стандарте фирмы Borland.
Пример
Путь в ANSI C > C:/MYDOCS/TEX/DOC1.TEX
Путь в Borland C > C:\\MYDOCS\\TEX\\DOC1.TEX
Надо же какую ахинею в методичке написали... Преподаватели хоть проверяют, что в методичках написано???

Стандарт ANSI C и фирма Borland не имеют никакого отношения к правилам задания пути.
В операционных системах семейства Unix разделителем в записи пути является обратный слеш: "/". А в операционных системах семейства Windows (или DOS) разделителем в пути является прямой слеш: "\".

В языках C и C++ знак "\" имеет специальное значение при записи символьных и строковых литералов. С помощью этого знака обознаются специальные символы. Например: '\n' - перенос строки, '\t' - знак горизонтальной табуляции. Также, с помощью знака "\" символы могут быть заданы через указание кода: в шестнадцатиричном виде: '\x20' - задан символ с кодом 0x20 - это пробел. В восьмеричном виде: '\040' - это тоже пробел.
Поэтому, в языке C и C++ для того чтобы задать сам литерал "\", его удваивают: '\\'. Вот поэтому, под ОС Windows или DOS, когда в Си или C++ требуется в строковом виде задать путь к файлу или папке, то он выглядит так:
C++
1
Path := "C:\\MYDOCS\\TEX\\DOC1.TEX";
Такой же путь, но заданный в виде строки Pascal, будет иметь вид:
Pascal
1
Path := 'C:\MYDOCS\TEX\DOC1.TEX';
0
ArtemPerm
2 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 29
28.10.2013, 19:26  [ТС] #4
Спасибо это вся программа?

Добавлено через 3 минуты
Mawrat, это вся программа?
0
Mawrat
12794 / 5701 / 672
Регистрация: 19.09.2009
Сообщений: 8,807
28.10.2013, 19:26 #5
Это не программа. А разъяснение о правилах записи путей в разных ОС и о об особенностях записи путей в Си в связи с использованием символа "\" в ОС Windows и DOS.
0
ArtemPerm
2 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 29
28.10.2013, 19:27  [ТС] #6
Mawrat, понятно)) а программку не сможете написать,? если не сложно
0
Mawrat
12794 / 5701 / 672
Регистрация: 19.09.2009
Сообщений: 8,807
28.10.2013, 19:48 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Если переформулировать в соответствие с тем, что я выше написал, то решение будет выглядеть так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
  S : String;
  i : Integer;
begin
  Writeln('Задайте путь по правилам OC Windows (DOS) в виде строки языка Си:');
  Readln(S); {Например пользователь здесь введёт: C:\\MYDOCS\\TEX\\DOC1.TEX}
  
  for i := Length(S) - 1 downto 1 do
    if (S[i] = '\') and (S[i] = S[i + 1]) then
      Delete(S, i, 1);
 
  Writeln('Этот же путь в виде строки Pascal:');
  Writeln(S); {Будет выведено: C:\MYDOCS\TEX\DOC1.TEX}
  Readln;
end.
Добавлено через 4 минуты
На всякий случай ещё такое решение:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
  S : String;
  i : Integer;
begin
  Writeln('Задайте путь по правилам OC Windows (DOS) в виде строки языка Си:');
  Readln(S); {Например пользователь здесь введёт: C:\\MYDOCS\\TEX\\DOC1.TEX}
 
  repeat
    i := Pos('\\', S);
    if i > 0 then begin
      Delete(S, i, 2);
      Insert('/', S, i);
    end;
  until i = 0;
 
  Writeln('Этот же путь, записанный по правилам ОС Unix в языке Си или Pascal:');
  Writeln(S); {Будет выведено: C:/MYDOCS/TEX/DOC1.TEX}
  Readln;
end.
1
ArtemPerm
2 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 29
28.10.2013, 20:13  [ТС] #8
Mawrat, СПАСИБО ВАМ ОГРОМНОЕ ОЧЕНЬ ВЫРУЧИЛИ ЕЩЕ РАЗ СПСПСПСПСП СПС СПС СПС СПС)))))))))
0
28.10.2013, 20:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2013, 20:13
Привет! Вот еще темы с ответами:

Получить строку, содержащую преобразованный текст - Turbo Pascal
1)Ввести образец текста. Получить строку, содержащую преобразованный текст в котором удалены все "*" а большие "Я" заменены на "-я-". ...

Удалить строку, содержащую минимальный элемент матрицы - Turbo Pascal
задали прогу написать а не знаю как.... вот условие: "удалить строку, содержащую минимальный элемент матрицы"

Продублировать строку матрицы, содержащую ее максимальный элемент. - Pascal
1. Дана целочисленная матрица размера M N, элементы которой могут принимать значения от 0 до 100. Различные строки матрицы назовем...

Каждую строку, содержащую минимальный элемент матрицы, на массив B(M). - Turbo Pascal
Дана целочисленная матрица из N-строк и M-столбцов (1<N<=100, 1<M<=50). Выполнить заданную операцию над матрицей: Замена строк; каждую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.