Форум программистов, компьютерный форум CyberForum.ru

Задача: Посчитать логические строки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Чат-бот http://www.cyberforum.ru/cpp-beginners/thread656934.html
#include <windows.h> #include <stdio.h> #include <iostream> #include <string.h> #include <clocale> using namespace std; int main() { setlocale(LC_CTYPE,"Russian"); cout << "Привет,"<<endl;
C++ Вывод в файл с ограничением числа Доброй всем ночи! Возникла задача в автоматизированном тесте: должно считаться неизвестное количество строк с числами и над ними выполнится операция. В результате операции должно получится число, не большее за единицу и большее за нуль, записанное с шестью знаками после точки, вроде 1.000000, 0.972222 и т.д. Причем подразумевается округление имеющегося числа. Меня интересует, как можно в файл... http://www.cyberforum.ru/cpp-beginners/thread656928.html
Функция не возвращает значение (консолька, си++) C++
Функция не возвращает значение, но указывает по какому if'у она прошла. Почему не рассчитывается/передается result? #include <stdio.h> #include <math.h> float calculate(float a, float b, float c, float x) { if (int(a)%int(b)==0 && x!=0) {
C++ двумерный вещественный массив
Объявить двумерный вещественный массив, в котором n x m элементов.Заполнить его числами, полученными по закономерностивложенный файл) .Распечатать его в виде таблицы с точностью до 3 знаков после запятой. Найдите в каждом столбце среднее арифметическое элементов. Распечатать найденные средние арифметические под соответствующим столбцом с той же точностью. a_{ij} = \prod \limits_{i = 0}^j \frac...
C++ Составить функцию вычисления выражения http://www.cyberforum.ru/cpp-beginners/thread656923.html
смотрите снимок
C++ Сборник задач Здравствуйте, не могли бы подсказать книгу с хорошим сборником задач? + Есть ли книги которые описывают функции и приемы с кнопками в windows form? подробнее

Показать сообщение отдельно
arreke
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 13

Задача: Посчитать логические строки - C++

24.09.2012, 05:58. Просмотров 647. Ответов 0
Метки (Все метки)

Описание

Одна компания использует непонятный для других людей язык программирования, вот особенности этого языка:
  1. Есть 2 вида символьных строк, первый - с использованием одинарных кавычек, второй - с использованием двойных ковычек. Строка с одинарными кавычками может содержать в себе двойные кавычки, строка с двойными кавычками также может содержать в себе одинарные кавычки. Строка не может разделяться, в строке не могут быть кавычки одного типа.
  2. Есть 2 вида комментариев: Line comment с использованием символа @, и Block comment который заключается в двойные скобки (()).
  3. Block comment не имеет вложений, весь текст в Block comment игнорируется.
  4. Комментарий не может находиться в символьной строке.
  5. Все Line comment и кавычки находящиеся в Block comment не имеют смысла.
  6. Кавычки находящиеся в комментарии не имеют смысла
  7. В скрипте не должно быть символа "#", даже в символьной строке или в комментарии.
  8. Любая точка с запятой не находящаяся в комментарии или в символьной строке означает конец логической строки.

Напишите скрипт, который может читать код программы и выводить колличество логических строк и колличество физических строк, а также для незаконченных комментариев и символьных строк выводить информацию об ошибке.

Input

Вводить можно одну или несколько программ.
# означает конец каждой программы.
## означает конец ввода.

Output

Для незаконченной символьной строки напечатать "Unterminated string in line n.", где n должно быть числом.

Если программа содержит незаконченный Block comment, напечатать "Unterminated block comment at end of program."

После информации об ошибке, напечатать "Program x contains y logical lines and z physical lines.", где x, y, z должны быть соответственными числами.

Например, Input:
((Block comment)↵
"string";('another string;');@line comment↵
##↵

Output:
Program 1 contains 2 logical lines and 2 physical lines.↵


Мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int phLines=0, lgLines;
char Lines[100][256];
 
int check (int sum)
{
  lgLines = 0;
  
  // Посчитать колличество lgLines и т.д.
  
  printf("Program %d contains %d logical lines and %d physical lines.\n", sum, lgLines, phLines);
  return 0;
}
 
int main() 
{
  int sum=0;
  char str[256];
  
  do {
    scanf(" %[^\n]s", str);
    if (strcmp("##", str)==0) continue;
    if (strcmp("#", str)==0) { check(++sum); phLines=0; }
    else sprintf(Lines[phLines++], "%s", str);
  } while (strcmp("##", str)!=0);
 
  printf("\n");
  system("PAUSE");
  return 0;  
}
Застрял. Подскажите, пожалуйста, какой примерно должен быть алгоритм? На что ориентироваться?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru